看shell脚本的时候,发现两个奇怪的用法 $@
和 $?
sh run_task.python $@
RETURN_VALUE=$?
if [ ${RETURN_VALUE} -ne 0 ]; then
echo "xx.sh job error!"
exit 1
fi
1. 来看 $@
$@
是一个特殊的 shell 变量,在 shell 脚本中用来表示所有传递给脚本的命令行参数。当在一个脚本中使用 $@
,它会展开成调用该脚本时传递的所有参数,每个参数作为独立的字符串。
例如,假设有一个名为 wrapper_script.sh
的脚本,内容如下:
#!/bin/bash
# wrapper_script.sh