【发布时间】:2015-11-13 11:35:09
【问题描述】:
我正在尝试在 Windows 下执行 .sh 脚本。我安装了 Git,它允许我执行 .sh 文件。但是,如果不使用“sh”作为执行前缀,我似乎无法传递任何参数:
我的 .sh 文件:
echo "Test" $1
如果我执行它:
> sh test.sh 123
我明白了
测试 123
但是,如果我只是执行它
> test.sh 123
我明白了
测试
我知道可以执行带有参数的 .sh 脚本,而无需在它们前面加上“sh”前缀,因为通过某种配置组合,我能够以某种方式在我的旧计算机上执行此操作。关于如何实现这一点的任何猜测?
【问题讨论】:
-
文件关联可能不完整。您可以使用
ftype和assoc命令查看和编辑文件关联。ftype /?寻求帮助。 -
@HarryJohnston 来自 assoc 我看到
.sh=sh_auto_file和来自 ftype -sh_auto_file="C:\Program Files\Git\git-bash.exe" --no-cd "%L" %*。它应该是什么,我该如何改变它? -
尝试将
#!/usr/bin/env bash添加为sh文件的第一行。 -
好吧,关联已经传递了参数,所以看起来没问题。它正在运行
git-bash.exe而不是sh但我猜这些是同义词?git-bash test.sh 123是做什么的? -
根据帮助使用
ftype命令,例如ftype sh_auto_file=git-bash "%1" %*
标签: windows bash shell command-line parameter-passing