我是Bash脚本的新手,有人可以向我解释$#和$?在以下代码中工作?
#!/bin/bash
ARGS=3 # Script requires 3 arguments.
E_BADARGS=85 # Wrong number of arguments passed to script.
if [ $# -ne "$ARGS" ]
then
echo "Usage: `basename $0` old-pattern new-pattern filename"
exit $E_BADARGS
fi
old_pattern=$1
new_pattern=$2
if [ -f "$3" ]
then
file_name=$3
else
echo "File \"$3\" does not exist."
exit $E_BADARGS
fi
exit $?
Run Code Online (Sandbox Code Playgroud)
Tho*_*oub 23
# Builtin variables:
# There are some useful builtin variables, like
echo "Last program's return value: $?"
echo "Script's PID: $$"
echo "Number of arguments passed to script: $#"
echo "All arguments passed to script: $@"
echo "Script's arguments separated into different variables: $1 $2..."
Run Code Online (Sandbox Code Playgroud)
来自https://www.gnu.org/software/bash/manual/html_node/Special-Parameters.html
$#
扩展为十进制的位置参数数量.
$?
扩展到最近执行的前台管道的退出状态.