$与一些特殊字符的组合用法

$符号的使用方法:(摘自-网络)

$0 程序所在文件的文件名
$n 脚本执行时的第n个参数,n={1,9}
$* 脚本执行时传入的所有参数,此选项参数可超过9个。
$# 脚本执行时传入的参数个数
$$ 这个程式的PID(脚本运行的当前进程ID号)
$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程 ID号)
$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$- 显示shell使用的当前选项
备注:默认值为himBH,可通过set 命令设置或取消一个选项配置,例:
set -x
这个选项可打开shell的调试开关,再次输出$-:
]#echo $-
输出结果为:
+ echo himxBH
himxBH
himxBH的每个选项配置作用如下:
h -- hashall
i -- interactive 说明当前shell是一个交互式的shell,例如终端下使用的shell就是交互式的
m -- monitor mode 可以控制进程的停止、继续,前台或者后台执行等操作
x -- 如上
B -- brace expansion
H -- history expand 此配置选项打开时,在shell中执行的语句都会被保存下来,通过history命令可查看,通过!n命令可执行编号为n的某条历史命令
$@ 跟$*类似,但是可以当作数组用
^$ 在正则匹配中表示匹配空行
备注1:$@ 与 $* 都保存所有参数,但是在""里,bash对两者的解析并不一样,"$*" 中,参数将作为一个整体变成字符串,而 "$@" 中每个参数各自转变成字符串,例:
1 #!/bin/bash/
2 function test(){
3     echo "$#";  
4 }
5 test "$*";
6 test "$@";
执行:./test.sh p1 p2 p3
结果: 1  # "$*" 值为 "p1 p2 p3"
   3  # "$@" 值为 "p1" "p2" "p3"
备注2:在函数作用域中,$n、$*、$@、$#等全局参数将被函数的覆盖,例:
1 #!/bin/bash/
2 echo $#;
3 echo $*;
4 function test(){ 
5     echo $#;
6     echo $*; }
7 
8 test arg1 arg2 arg3

执行:sh test.sh g_arg1 g_arg2
结果:2
   g_arg1 g_arg2
   3
   arg1 arg2 arg3

转载于:https://www.cnblogs.com/Ferir/p/4241879.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值