Windows Cmder bash脚本正在执行
我在Windows中创建了基本脚本Windows Cmder bash脚本正在执行,windows,bash,conemu,cmder,Windows,Bash,Conemu,Cmder,我在Windows中创建了基本脚本 #!/bin/bash echo Hello 我使用的是Cmder,ConEmu衍生物。我试图用chmod改变特权,但它们是一样的。我不知道如何执行这个脚本。正常的Linux方式,即:./hello.sh不起作用,只键入hello.sh会让Windows尝试打开它,这很糟糕,因为我想在控制台中打开它。如何在ConEmu/Cmder中执行此脚本?我注意到您可以从Cmder运行bash。所以我可以这样做: > bash $ ./yourScript.sh
#!/bin/bash
echo Hello
我使用的是Cmder,ConEmu衍生物。我试图用chmod改变特权,但它们是一样的。我不知道如何执行这个脚本。正常的Linux方式,即:./hello.sh不起作用,只键入hello.sh会让Windows尝试打开它,这很糟糕,因为我想在控制台中打开它。如何在ConEmu/Cmder中执行此脚本?我注意到您可以从Cmder运行
bash
。所以我可以这样做:
> 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
如果只需键入脚本名称即可运行脚本,解决方法是创建别名并将其放入
.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
我创建了一个外部脚本:
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!!!
它的工作原理与Unix shell上的工作原理相同
sh path/to/your/script.sh
您可以将自己的
.sh
文件放入$CMDER\u ROOT/config/profile.d/*.sh
目录,正如文档解释的那样Windows不支持#代码>行,因此您需要执行程序,例如bash hello.sh
(在Linux中可以这样做),或者更改.sh
扩展名的文件关联-请参阅stat
和file
命令。谢谢,这样做对我最有效-sh在您当前的环境(例如conda环境)中运行脚本而bash会打开一个新的shell。