我的脚本应该从管道获取输入并使用 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
$
从循环内的赋值行中删除。您尝试使用该值作为要分配给的变量的名称,这会导致非常奇怪的行为。