加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux中shell变量$#,[email?protected],$0,$1,$2的含义解释

发布时间:2020-12-14 01:17:30 所属栏目:Linux 来源:网络整理
导读:常用的shell中带有$符号的几个变量的含义: 区别: @ * 相同点:都是引用所有参数 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数(分别存储在 1? 2? 3 ) 则"*" 等价于 “ 1? 2? 3 " ( 传 递 了 一 个 参 数 ) ;而“@" 等价于 " 1 "? "2

常用的shell中带有$符号的几个变量的含义:

区别:@ *

  • 相同点:都是引用所有参数
  • 不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数(分别存储在1?2?3则"*" 等价于 “1?2?3";而“@" 等价于 "1"?"2" ?"$3"(传递了三个参数)


变量说明:?
$$?
Shell本身的PID(ProcessID)?
$!?
Shell最后运行的后台Process的PID?
$??
最后运行的命令的结束代码(返回值)?
$-?
使用Set命令设定的Flag一览?
$*?
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。?
[email?protected]?
所有参数列表。如"[email?protected]"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。?
$#?
添加到Shell的参数个数?
$0?Shell本身的文件名?
$1~$n?
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。?

示例:

1 #!/bin/bash
? 2 #
? 3 printf? "The complete list is %sn"? "$$"
? 4 printf? "The complete list is %sn"? "$!"
? 5 printf? "The complete list is %sn"? "$?"
? 6 printf? "The complete list is %sn"? "$*"
? 7 printf? "The complete list is %sn"? "[email?protected]"
? 8 printf? "The complete list is %sn"? "$#"
? 9 printf? "The complete list is %sn"? "$0"
10 printf? "The complete list is %sn"? "$1"
11 printf? "The complete list is %sn"? "$2
?
结果:
$ bash test .sh 123456 QQ
The complete list? is? 22216
The complete list? is
The complete list? is? 0
The complete list? is? 123456 QQ
The complete list? is? 123456
The complete list? is? QQ
The complete list? is? 2
The complete list? is? params .sh
The complete list? is? 123456
The complete list? is? QQ

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读