Printf

printf ‘$V’ 在以下情況下失敗:’^+%&/%+^

  • February 21, 2017

為了避免**\n**:

使用“ printf ”而不是“ echo

設置字元串

IFS='' read -r -d '' V <<'EOF'
'^+%&/%+^
EOF

使用迴聲進行測試(工作正常)

echo "$V"
'^+%&/%+^

使用 printf 進行測試(失敗)

printf "$V"
bash: printf: `&': invalid format character

的第一個參數printf將被解釋為格式化字元串,並且%&是無效的格式說明符。

試試這個:

printf '%s' "$V"

所做的格式printf應該在printf(1)手冊中解釋,或者在你的 shell 手冊中。該%s格式只是意味著“期望一個字元串”。預設情況下,該printf實用程序不添加換行符。

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