我需要创建检查参数的脚本,该参数是Linux命令:
cat script.sh
case "$1" in
cp|cd|ls ) exec "$0" "$1" ;;
*) echo "error: not permitted" ;;
esac
我需要添加检查是否第一个参数是这样的:
[-s $ file] && echo OK
所以我添加了这样的条件:
case "$1" in
cp|cd|ls| "[ -s .* ] && echo OK" ) exec "$0" "$1" ;;
*) echo "error: not permitted" ;;
esac
但是它不起作用,请知道
答案 0 :(得分:0)
您不能将条件置于“案例”模式中。您可以将它们放入案例的命令部分。
case "$0" in
cp|cd|ls )
[ -s "$1" ] && exec "$0" "$1"
echo "Bad parameter" ;;
*) echo "error: not permitted" ;;
esac
也请注意“ cd”:您不能在子进程中执行“ cd / path”。