Bash
為什麼 bash 會嘗試在字元串替換中執行字元串?
我的腳本應該使用 bash 的字元串替換從管道中獲取輸入並用逗號替換換行符:
#! /bin/bash read -d -r input echo $input $input=${input//\n/,} echo $input
但是,bash 不會替換換行符,而是嘗試執行第一個匹配模式:
echo -e "this\nis\na\ntest\n" | test.sh
將給出以下輸出:
test.sh: line 5: this: command not found
並且變數
$input
沒有改變。雙引號或單引號也無濟於事。我在 Linux Mint 上使用 bash 版本 4.3.11。
$
從循環內的賦值行中刪除。您試圖使用該值作為您要分配的變數的名稱,這會導致非常奇怪的行為。