为了账号安全,请及时绑定邮箱和手机立即绑定

shell中的位置参数变量$@ 类型如何理解

shell中的变量类型默认都是字符串型的,那么$@这个变量又是什么类型呢?

正在回答

2 回答

$@和$*都是表示“所有参数”。带""时有如下区别

"$*" 会变成 "$1 $2 $3 $4......",注意参数间带着空格。

"$@" 会变成 "$1" "$2" "$3"......

for i in "$*" 转化为 for i in "$0 $1 $2 $3 $4......",将用户输入的参数代入,"$*"是一个长字串。

for y in "$@" 转化为 for y in  "$1" "$2" "$3"...... , 代入参数后,有几个字串for循环几次,"$@"是个列表。

不带""的话,它们俩一样。

0 回复 有任何疑惑可以回复我~

一样的。 他是通过换行来让用户区分不同的几个参数,实质就是中间包含换行的字符串

0 回复 有任何疑惑可以回复我~
#1

慕函数0111378

换行是由echo带的,不是变量里的。 echo -e "\c"(-e 开启转意,\c表示不换行),echo ""本身会输出换行。试试下面的代码, #!/bin/bash for i in "$*" do echo "${i}" done for y in "$@" do echo -e "${y}\c" done echo "" echo ""
2017-03-31 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

shell中的位置参数变量$@ 类型如何理解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信