printf "$V" 在以下情况下失败: '^+%&/%+^

printf "$V" 在以下情况下失败: '^+%&/%+^

避免\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实用程序不添加换行符。

相关内容