Bash

為什麼 bash 會嘗試在字元串替換中執行字元串?

  • May 27, 2015

我的腳本應該使用 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。

$從循環內的賦值行中刪除。您試圖使用該值作為您要分配的變數的名稱,這會導致非常奇怪的行為。

引用自:https://unix.stackexchange.com/questions/205945