不使用 -r 读取会破坏反斜杠

不使用 -r 读取会破坏反斜杠
cd $Script_Dir
clear
read -p "Enter name of script to run shellcheck on. -> " n1
shellcheck "$n1" 

In shellchk.sh line 10:
read -p "Enter name of script to run shellcheck on. -> " n1
^-- SC2162: read without -r will mangle backslashes.

为什么这么说?我从来不会在文件名中使用反斜杠。

如果我使用

read -r "Enter name of script to run shellcheck on. -> " n1

/home/andy/bin/nshellchk.sh: line 11: read: `Enter name of script to run shellcheck on. -> ': not a valid identifier
: : openBinaryFile: does not exist (No such file or directory)

答案1

read是 bash 内置的。help read告诉

-r 不允许反斜杠转义任何字符

shellcheck警告不使用read反斜杠,-r因为read这样就不会按原样读取反斜杠。如果您不需要启用反斜杠功能,请使用-rshellcheck不知道您是否要在文件名中使用反斜杠。

-p如果要read显示提示文本,则必须使用。因此,您可能需要使用

read -r -p "Enter name of script to run shellcheck on. -> " n1

相关内容