如何为以下批处理命令获取相应的 shell 命令:
if %1 EQU %~1 (
echo ERROR ! The username must be within quotes.
)
如何为以下批处理命令获取相应的 shell 命令:
if %1 EQU %~1 (
echo ERROR ! The username must be within quotes.
)
Bash 中的引号是句法的,而不是字面的,所以它们在脚本中根本看不到。AFAIK 绝对没有办法让脚本知道参数是否或如何被引用,因为在脚本接收参数时任何引号都有效地消失了。
如果您想检查参数是否包含空格或其他特殊字符,使其“适合”在 Bash中引用,您可以检查“Bash-quoted”字符串是否等于原始字符串:
[[ "$1" = "$(printf %q "$1")" ]]
如果你想检查参数是否被字面引用,你可以做一个简单的检查,比如
[[ "$1" =~ ^\".*\"|\'.*\'$ ]]
也就是说,你为什么需要这个?
使用 bash,试试这个:
if [[ -z "$1" ]]; then
echo ERROR ! The username must be within quotes.
fi