首页 > 系统 > Linux > 正文

Shell编程之特殊变量的笔记小结

2019-10-26 18:56:34
字体:
来源:转载
供稿:网友

$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 特殊变量实战

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

例2:

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

例3:

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

例4:在脚本中添加$1 $2测试:

[root@yankerp src]# cat test.sh #查看脚本的内容 #!/bin/bash echo $1 $2    定义了$1 $2 [root@yankerp src]# source test.sh zhangsan lisi #在执行脚本的时候定义了两个字符串 zhangsan lisi    #说明 zhangsan赋值给了$1 lisi赋值给了$2 输出结果为 zhangsan lisi [root@yankerp src]# 

同时也可以这样加双引号 如下:

[root@yankerp src]# cat test.sh #查看脚本的内容 #!/bin/bash echo $1 $2 [root@yankerp src]# source test.sh "zhangsan lisi" yankai #""表示一个字符串  zhangsan lisi yankai  #输出结果 [root@yankerp src]# 

2)当我们一个个的输入echo $1---15时会感觉很慢我们可以使用以下命令来接收命令传递的15个参数

[root@yankerp src]# echo /${1..15} $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 

将输出的内容导入到test.sh文件中

[root@yankerp src]# echo /${1..15} > test.sh  [root@yankerp src]# cat test.sh  $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 [root@yankerp src]#             
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表