【Linux学习笔记】28:位置参数变量
来源:互联网 发布:悟空 知乎 编辑:程序博客网 时间:2024/06/07 17:55
本节学习位置参数变量(预定义变量中的一类),位置参数变量可以向Shell脚本中传递各个位置的参数。
[1]$n
它最主要的作用是向脚本里传递参数值,假如有这样一个脚本(既没有写东西也没赋予权限,但假设它能用):
那么在这样运行脚本时,就会把”./test1.sh”、”11”、”22”分别赋给$0、$1和$2,用这种方式就可以给脚本传值了。
*测试$n
[root@bogon sh]# vi ok.sh
进入编辑器,书写代码:
#!/bin/bashnum1=$1num2=$2sum=$(($num1+$num2))#用$双小括号做求值运算echo $sum
解释执行验证传参:
[root@bogon sh]# bash ok.sh 12 3446
上面的脚本还可以简化:
#!/bin/bashsum=$(($1+$2))echo $sum
用这种方式还存在一个缺陷,就是如果不是脚本的开发者,我怎么知道要向脚本中传递什么顺序、什么样的值,即不了解参数表就没法去使用脚本。所以这种方式更适合给脚本的编写者来用,而不适合去给其它用户,后面会学习read来应对这种情况。
[2]其它位置参数变量
修改脚本:
#!/bin/bashecho "所有参数的个数是 $#"echo "用\$*看到所有的参数是 $*"echo "用\$@看到所有的参数是 $@"
执行结果:
[root@bogon sh]# bash ok.sh 1 2 3 45 jd 12所有参数的个数是 6用$*看到所有的参数是 1 2 3 45 jd 12用$@看到所有的参数是 1 2 3 45 jd 12
在这个例子中没有看到$*和$@的区别。
[3]$*和$@的区别
$*将所有参数看成一个整体,而$@将参数区别对待,可以用下面这个脚本的for循环来验证:
#!/bin/bashfor i in "$*" do echo "\$*: $i" donefor j in "$@" do echo "\$@: $j" done
执行结果:
[root@bogon sh]# bash ok.sh 1 2 3 45 jd 12$*: 1 2 3 45 jd 12$@: 1$@: 2$@: 3$@: 45$@: jd$@: 12
注意这两个值使用时应当用双引号括起来,否则会发生变化。
阅读全文
0 0
- 【Linux学习笔记】28:位置参数变量
- Linux学习之位置参数变量
- Linux位置参数变量
- linux:位置参数变量
- Linux 位置参数变量
- Linux shell编程学习笔记(四) 位置变量
- linux shell学习笔记2(变量和参数)
- 位置变量参数
- 位置参数变量
- Linux_位置参数变量
- bash位置参数变量
- 位置参数变量
- Bash变量--位置参数变量
- linux 命令系列之 位置参数变量(48)
- Linux 使用位置变量向脚本传递参数
- Shell脚本学习-位置参数和特殊变量
- Linux学习--第十天--bash脚本、用户自定义变量、环境变量、位置参数变量、预定义变量、标准输入输出、wc、history、dd、PS1
- shell中位置变量参数
- stm32学习——中断的优先级设置
- MyCat是什么?为什么要用MyCat?
- 设置div高度为100%
- Java中的ReentrantLock和synchronized两种锁定机制的对比
- tostring,string强转,string。valueof()区别
- 【Linux学习笔记】28:位置参数变量
- Codeforces Round #431 (Div. 2) D. Rooter's Song
- AFN请求的一个坑
- shell脚本在容器云中搭建hadoop集群(一)
- 省市联动
- caffe下用python进行mnist预测
- 如何快速学习
- 自己搭建自动化巡检系统(五) 抖动告警
- js的常用String对象