千家信息网

shell中$的含义和以及和$@的区别

发表于:2024-10-15 作者:千家信息网编辑
千家信息网最后更新 2024年10月15日,今天小编给大家分享的是shell中$的含义和以及和$@的区别,相信大部分人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,话不多说,一起往下看吧。#!/bin/bash#Author:Spa
千家信息网最后更新 2024年10月15日shell中$的含义和以及和$@的区别

今天小编给大家分享的是shell中$的含义和以及和$@的区别,相信大部分人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,话不多说,一起往下看吧。

#!/bin/bash#Author:Sparrow#Name:explain_shell_parameters#Date 2020-3-11#Description:#Explain what $0 $1 $2 $3 $4 $@ $* $# mean#Program begin#Ensure enter six parameters at leastif [ $# -le 6 ];then        echo "Please enter 6 parameters at least!"        exit 1fi#Echo every $echo "\$0  ---------  $0"echo "\$1  ---------  $1"echo "\$2  ---------  $2"echo "\$3  ---------  $3"echo "\$4  ---------  $4"echo "\$5  ---------  $5"echo "\$6  ---------  $6"echo "\$7  ---------  $7"echo "\$8  ---------  $8"echo "\$#  ---------  $#"echo "\$@  ---------  $@"echo "\$*  ---------  $*"echo "\$?  ---------  $?"

l输出结果

sh explain_shell_parameters.sh 1 2 3 4 5 6 7 8#结果#$0即脚本名$0  ---------  explain_shell_parameters.sh $1  ---------  1 $2  ---------  2 $3  ---------  3 $4  ---------  4 $5  ---------  5 $6  ---------  6 $7  ---------  7 $8  ---------  8 $#  ---------  8 $@  ---------1 2 3 4 5 6 7 8 $*  ---------  1 2 3 4 5 6 7 8#上一条语句的执行结果$?  ---------  0

$* 和 $@ 的区别

 当 $* 和 $@ 不被双引号 " "包围时,它们之间没有任何区别, 都是将接收到的每个参数看做一份数据,彼此之间以空格来分隔。 但是当它们被双引号" "包含时,就会有区别了:"$*"会将所有的参数从整体上看做一份数据,而不是把每个参数都看做一份数据。"$@"仍然将每个参数都看作一份数据,彼此之间是独立的。比如传递了 5 个参数,那么对于"$*"来说,这 5 个参数会合并到一起形成一份数据,它们之间是无法分割的;而对于"$@"来说,这 5 个参数是相互独立的,它们是 5 份数据。如果使用 echo 直接输出"$*"和"$@"做对比,是看不出区别的;但如果使用 for 循环来逐个输出数据,立即就能看出区别来。

关于shell中$的含义和以及和$@的区别就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果喜欢这篇文章,不如把它分享出去让更多的人看到。

0