避免\n:
使用 ”打印函数“ 而不是 ”回声”
放细绳
IFS='' read -r -d '' V <<'EOF'
'^+%&/%+^
EOF
测试w/回声( 工作正常 )
echo "$V"
'^+%&/%+^
测试w/打印函数(失败)
printf "$V"
bash: printf: `&': invalid format character
答案1
第一个参数printf
将被解释为格式字符串,并且%&
是无效的格式说明符。
试试这个:
printf '%s' "$V"
所执行的格式化操作应该在手册或 shell 手册中printf
进行解释。printf(1)
该%s
格式仅意味着“需要一个字符串”。默认情况下,该printf
实用程序不添加换行符。