Windowsで基本的なスクリプトを作成しました。
#!/bin/bash
echo Hello
私はConEmuの派生物であるCmderを使用しています。私は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
}
Unixシェルと同じように動作します
sh path/to/your/script.sh
時間がない場合は結論にジャンプしてください:
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
ディレクトリに配置できます here