Cmder bash脚本执行

时间:2016-03-24 08:54:35

标签: windows bash conemu cmder

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

#!/bin/bash

echo Hello

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

6 个答案:

答案 0 :(得分:14)

I've noticed you can run bash from cmder. So I could do it like:

> bash
$ ./yourScript.sh

or simpler

> cat yourScript.sh | bash

Disclaimer: New to cmder (just downloaded it) and Linux myself.

答案 1 :(得分:6)

在我自己的Cmder实例上, $template = APP_PATH."/application/views/layouts/mails/NewEmployee.html"; $mail_body = file_get_contents($template); $formated_mail_body = str_replace( ["{{name}}", "{{email}}", "{{password}}"], [$name, $email, $password], $mail_body); $from = [ "name" => "XYZ company", "email" => "hr@xyz.com" ]; $to = [ ["name" => $name, "email" => $email] ]; $subject = "Welcome on Board, Xyz Co."; $sendgrid_mailer = new Mailer(); $sendgrid_mailer->addSender($from); $sendgrid_mailer->addRecipient($to); $sendgrid_mailer->addSubject($subject); $sendgrid_mailer->addBodyContent($formated_mail_body); $sendgrid_mailer->addReplyTo($from); $response = $sendgrid_mailer->send(); var_dump($response); 工作正常,我相信更简单:

bash [filename]

答案 2 :(得分:4)

如果您希望只需输入其名称即可运行该脚本,则解决方法是创建一个别名并将其放入.bashrc,例如:

alias scriptName="bash /pathToTheScript/yourScript.sh"

或者您可以在.bashrc中找到一个脚本,并通过一个函数使其可用:

source /pathToTheScript/yourScript.sh

脚本在哪里:

#!/bin/bash
function your_function()
{
yourCode
}

答案 3 :(得分:2)

它的工作原理与Unix shell一样

sh path/to/your/script.sh

答案 4 :(得分:1)

如果您没有时间跳到下面的结论

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!!!'
Windows上的Cmder甚至不需要

#!/bin/bash,并且Cmder bash中的任何地方都可以成功执行它:

λ cd /c
a@DESKTOP /c
λ aloha
aloha!!!

答案 5 :(得分:0)

您可以将自己的.sh文件放到$CMDER_ROOT/config/profile.d/*.sh目录中,如文档所述here