我看到了一個包含案例結構的程式碼片段。
while true;
do
case "$1" in
--prepare)
echo "prepare"
ENV_PREPARE
exit 0
;;
--sleep)
SLEEP_TIME=$2
shift 2
;;
--)
shift
break
;;
*)
echo "Internal error!"
exit 1
;;
esac
done
bash 的 case 結構中 --) hrer 是什麼意思?
--)
shift
break
;;
答案1
bash 並沒有什麼特別的意義。
該片段的作者想要匹配兩個連字符本身,而不需要任何其他字符。字面上 」 - 」。
許多 Unix 命令列工具,特別是來自 GNU 遺產的,允許您使用“--”作為分隔符,表示“超過此點的任何內容都不應被視為選項;”此命令列的其餘部分由參數組成(例如作用於檔案的命令的檔案名稱清單)」。這樣,您就可以輸入以下內容來刪除名為「--help」的檔案:
rm -- --help
它不會rm
認為“--help”是查看幫助語句的長選項。 (這是一個很糟糕的例子,但我想你明白我的意思。)
我認為該腳本的作者想讓“--”在他的腳本中發揮作用。