2
我試圖寫一個bash腳本,將使用win-bash的窗戶邊Mac和Windows上運行,因爲它沒有安裝。但是,Mac和Windows似乎對語法有不同的意見。二元運算符預計在雙贏的bash
例如,我有以下腳本迄今:
echo "Setup..."
shopt -s expand_aliases #make sure aliases work
if [ "$(uname)" == "Darwin" ]; then
alias p4cli=./bin/p4
else
alias p4cli=p4
fi
echo "Checking login status..."
p4cli groups > .trash
if [ $? -ne 0 ]; then
p4cli login
fi
echo "Done!"
這種失敗:
[: ==: binary operator expected
在窗口(WIN-的bash),但(只是罰款在Mac上,我」因爲它實際上是Unix)將會假設更爲正確。
的,我做錯了什麼在這裏的任何想法?
我敢打賭,你沒有在Windows環境中的'uname' CMD。最好使用'set -vx'和'set + vx'關閉shell調試/跟蹤功能。然後你可以看到每個cmd都是在變量替換的情況下執行的。祝你好運。 – shellter
實際上,共贏的bash包括UNAME –
'CMD;如果[$? -ne 0];那麼......'更習慣性地寫'如果cmd;那麼......或者簡單地說'cmd || ......如果後備是一個簡單的單一動作。 – tripleee