目前在以下版本的Bash裏面工作:製作的命令行參數複製功能
GNU bash, version 4.2.46(1)-release (x86_64-redhat-linux-gnu)
我當前的腳本:
#!/usr/bin/env bash
function main() {
local [email protected]
for command in ${commands[@]} ; do
echo "command arg: $command"
done
}
if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then
set -e
main [email protected]
fi
簡單來說,該腳本只能EXEC main
如果它是被調用的腳本,類似於Python的if __name__ == '__main__'
約定。
在main
功能,我只是遍歷所有命令的變量,但如預期報價轉義是不會發生:
$ tests/simple /bin/bash -c 'echo true'
command arg: /bin/bash
command arg: -c
command arg: echo
command arg: true
最後一個參數這裏應該被Bash得到解析爲一個參數,但它被分成單獨的單詞。
我在做什麼錯?我想echo true
顯示爲一個單一的參數。