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