Cmder bash脚本执行

Bad*_*Bot 12 windows bash conemu cmder

我在Windows中创建了基本脚本.

#!/bin/bash

echo Hello
Run Code Online (Sandbox Code Playgroud)

我正在使用Cmder,ConEmu衍生物.我尝试用chmod更改权限,但它们是相同的.我不知道如何执行这个脚本.正常的Linux方式,即:./ hello.sh不起作用,只键入hello.sh会让Windows尝试打开它,这很糟糕,因为我想在控制台中使用它.如何在ConEmu/Cmder中执行此脚本?

小智 14

我注意到你可以bashcmder运行.所以我可以这样做:

> bash
$ ./yourScript.sh
Run Code Online (Sandbox Code Playgroud)

或者更简单

> cat yourScript.sh | bash
Run Code Online (Sandbox Code Playgroud)

免责声明:cmder(刚下载)和Linux本人的新手.


Con*_*ien 7

在我自己的Cmder实例上,bash [filename]工作正常,我相信更简单:

C:\Users\Conor O'Brien
? type test.sh
echo Hello

C:\Users\Conor O'Brien
? bash test.sh
Hello
Run Code Online (Sandbox Code Playgroud)


Lir*_*n H 7

它就像在 Unix shell 上一样工作

sh path/to/your/script.sh
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说效果最好 - sh 在当前环境(例如 conda 环境)中运行脚本,而 bash 打开一个新的 shell。 (3认同)

Pau*_*Pau 5

如果您希望能够通过简单地输入脚本名称来运行脚本,一种解决方法是创建一个别名并将其放入您的.bashrc例如:

alias scriptName="bash /pathToTheScript/yourScript.sh"
Run Code Online (Sandbox Code Playgroud)

或者您可以在您的内部.bashrc获取脚本并通过函数使其可用:

source /pathToTheScript/yourScript.sh
Run Code Online (Sandbox Code Playgroud)

脚本在哪里:

#!/bin/bash
function your_function()
{
yourCode
}
Run Code Online (Sandbox Code Playgroud)