我正在使用这段代码:
#!/bin/sh
if [ $# -lt 2 ]
then
echo "wrong syntax"
echo "ct_cmp.sh <label1> <label2> [<file_extension>]"
else
if [ $# -eq 2 ]
then
cleartool find . -version 'lbtype($1) && \!lbtype($2)' -print
fi
fi
但得到这个结果:
清除工具:
Error: Invalid query: "lbtype($1) && \!lbtype($2)"
答案1
单引号将防止参数扩展:
'lbtype($1) && \!lbtype($2)'
它应该与"'lbtype($1) && \!lbtype($2)'"
.
顺便说一句,我在处理 shell 脚本时的首选工具之一是使用 shellcheck 来验证它们:https://www.shellcheck.net/(也可在独立可执行文件中使用)。毫不奇怪,它会告诉你关于简单引用的完全相同的事情。