我在 Windows 中创建了基本脚本。
#!/bin/bash
echo Hello
我正在使用 Cmder,ConEmu 衍生产品。我尝试使用 chmod 更改权限,但它们是相同的。我不知道如何执行这个脚本。普通的 Linux 方式,即: ./hello.sh 不起作用,只输入 hello.sh 会使 Windows 尝试打开它,这很糟糕,因为我希望它在控制台中。如何在 ConEmu/Cmder 中执行这个脚本?
我注意到您可以bash
从cmder运行。所以我可以这样做:
> bash
$ ./yourScript.sh
或更简单
> cat yourScript.sh | bash
免责声明:cmder(刚刚下载)和 Linux 的新手。
在我自己的 Cmder 实例上,bash [filename]
工作得很好,而且我相信要简单得多:
C:\Users\Conor O'Brien
λ type test.sh
echo Hello
C:\Users\Conor O'Brien
λ bash test.sh
Hello
它就像在 Unix shell 上一样工作
sh path/to/your/script.sh
如果您希望能够通过简单地输入脚本名称来运行脚本,一种解决方法是创建一个别名并将其放入您的.bashrc
例如:
alias scriptName="bash /pathToTheScript/yourScript.sh"
或者您可以在您的内部获取脚本.bashrc
并通过函数使其可用:
source /pathToTheScript/yourScript.sh
脚本在哪里:
#!/bin/bash
function your_function()
{
yourCode
}
如果你没有时间跳到下面的结论:
TL:DR: 我在 Windows 上玩弄“Cmder > bash”来创建一个全局脚本:
我创建了一个外部脚本:
a@DESKTOP /c/Scripts/
λ vi test.sh
与内容
#!/bin/bash
echo 'Can you see me now?'
它可以从同一个文件夹中执行:
a@DESKTOP /c/Scripts/
λ ./test.sh
Can you see me now?
在创建 simbolink 链接时:
λ ln -s /c/Portables/Scripts/GlobalesBash/test.sh /bin/mytest
仅用名称调用它似乎可以正常工作:
λ mytest
Can you see me now?
但如果原始文件被修改:
λ cat test.sh
#!/bin/bash
echo 'Yes, I see you'
使用链接未反映更改:
λ mytest
Can you see me now?
结论:
所以最好的选择是直接在文件夹 /bin 上创建脚本:
λ cd /bin
λ vi aloha
λ cat aloha
echo 'aloha!!!'
甚至#!/bin/bash
在 Windows 上使用 Cmder 都不需要,它可以从 Cmder bash 的任何地方成功执行:
λ cd /c
a@DESKTOP /c
λ aloha
aloha!!!
您可以将自己的.sh
文件放入$CMDER_ROOT/config/profile.d/*.sh
目录中,正如文档在此处解释的那样