私のスクリプトはパイプから入力を受け取り、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を使用しています。
答え1
$
ループ内の割り当てラインから削除します。その値を割り当てる変数の名前として使用しようとしましたが、その結果非常に奇妙な動作が発生します。