Linux 美元在Bash中有什么用途
我对Bash脚本非常陌生,有人能给我解释一下$#和$是如何使用的吗?在以下代码中工作Linux 美元在Bash中有什么用途,linux,bash,Linux,Bash,我对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 filena
#!/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 $?
从
$#
扩展为十进制位置参数的数量
$?
扩展到最近执行的前台管道的退出状态
发件人:
$#
显示脚本参数的数量
$?
显示最后一个脚本的返回值
关于参数:echo“ARG[$#]”
在if
之前,然后执行如下脚本
script.sh 1
输出将是
ARG[1]
Usage: g old-pattern new-pattern filename
等等
$?
的输出也可以在命令行上使用:
#shell>ls
file1.txt g inpu nodes_list
#shell>echo $?
0
#shell>ls FileNameNotFound
ls: FileNameNotFound: No such file or directory
#shell> echo $?
1
在bash中存在特殊变量。。。我给你写了一些 $#-这是一个特殊变量,它包含传递给脚本的命令行数(您只需计算输入的参数数)中的内容。tis变量还表示最后一个命令行,但最好是这样${!#} $?-这是一个非常特殊的变量,因为它表示您的脚本很好。此变量保持previosly命令的退出状态。。。这有点令人困惑,但它工作得很好。。。当您结束脚本时,您可以将此变量定位在末尾,如果她返回0值,则scrip is perfect为true,如果她返回1或其他值,则必须检查行
#shell>ls
file1.txt g inpu nodes_list
#shell>echo $?
0
#shell>ls FileNameNotFound
ls: FileNameNotFound: No such file or directory
#shell> echo $?
1