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
这样就不会按原样读取反斜杠。如果您不需要启用反斜杠功能,请使用-r
。shellcheck
不知道您是否要在文件名中使用反斜杠。
-p
如果要read
显示提示文本,则必须使用。因此,您可能需要使用
read -r -p "Enter name of script to run shellcheck on. -> " n1