在一個bash文件s.sh
中,我有一個Executor函數,我傳遞要執行的命令。每當某個命令不能按預期工作時,此功能將輸出該命令。Bash函數不執行輸入命令
Executor()
{
if ! $*
then
echo "$*"
exit 2
fi
}
現在我調用這個函數 -
Executor clangPath="Hello" make
(這是用來設置clangPath變量的值,如「你好」,在生成文件)
這造成了一個錯誤 -
./s.sh: line 5: clangPath=Hello: command not found
[./s.sh] Error: clangPath=Hello make
但是執行這樣的命令一樣正常工作
if ! clangPath="Hello" make
then
echo "HelloWorld!"
fi
看着錯誤後,我認爲有可能是用字符串的報價錯誤,所以我想
exitIfFail clangPath='"Hello"' make
即使這導致了一個錯誤 -
./s.sh: line 5: clangPath="Hello": command not found
[./s.sh] Error: clangPath="Hello" make
有什麼事情是錯誤的原因?
你可以試試!/usr/bin/ksh $ * ...取決於你在哪裏和使用什麼shell?我沒有能力在這裏測試。 – FreudianSlip
參見[Bash FAQ 050](http://mywiki.wooledge.org/BashFAQ/050)。 – chepner
Eww,'$ *'...我認爲你拼錯了'「$ @」'。 –