Shell编程之特殊变量

$0 $# $n-->$[1..9] $* $@


1、在shell中存在着一些特殊而又重要的变如:$1 $0 $#,我们称为特殊的位置变量 要从命令行,函数,脚本,等传递参数时,就需要在shell脚本中使用位置参数变量
  • $0:显示当前的脚本文件名,如果在执行脚本时添加了路径,那么全部都会输出
  • $n:获取当前执行的shell脚本的第n个参数值比如:[n=1..9],如果N大于9那么就要使用{}来定义 比如${10}
  • $#:获取当前shell脚本后面接的参数的个数
  • $*:获取当前脚本的参数,不加引号和$@是一样的 加了引号;例如"$*" 则表示单个字符串。相当于"$1 $2 $3"
  • $@:同样也是获取当前shell的参数,不加引号和$*是一样的,那么加了引号如:"$@" 表示将所有的参数视为不同独立的字符串,相当于"$1" "$2"..
总结:$*和$@不加双引号 是没有任何区别的,有双引号两者就有区别


1)$1 $2 特殊变量实战

  1. [root@yankerp src]# cat test.sh  #查看脚本的内容  
  2. #!/bin/bash  
  3. echo $1     ---<定义了$1  
  4. [root@yankerp src]# source test.sh yankai #执行的脚本的时候将yankai赋值给脚本中的1  
  5. yankai                  #输出yankai  
  6. [root@yankerp src]#  
例2:

  1. [root@yankerp src]# cat test.sh  #脚本内容  
  2. #!/bin/bash  
  3. echo $1  
  4. [root@yankerp src]# source test.sh zhangsan lisi  #zhansgan lisi是两个字符串以空格分割  
  5. zhangsan            #只输出了zhangsan,因为脚本中只定义了$1  
  6. [root@yankerp src]#   
例3:

  1. [root@yankerp src]# cat test.sh #查看脚本的内容  
  2. #!/bin/bash  
  3. echo $1  
  4. [root@yankerp src]# source test.sh "zhangsan lisi" #加双引号表示一个字符串参数  
  5. zhangsan lisi        #最后输出结果为zhangsan lisi  
  6. [root@yankerp src]#  
例4:在脚本中添加$1 $2测试:

  1. [root@yankerp src]# cat test.sh  #查看脚本的内容  
  2. #!/bin/bash  
  3. echo $1 $2        定义了$1 $2  
  4. [root@yankerp src]# source test.sh zhangsan lisi #在执行脚本的时候定义了两个字符串  
  5. zhangsan lisi        #说明 zhangsan赋值给了$1 lisi赋值给了$2 输出结果为 zhangsan lisi  
  6. [root@yankerp src]#  
同时也可以这样加双引号 如下:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值