shell 脚本 输入参数 学习
以下内容转载自:http://www.52php.cn/article/p-mggnxetz-zw.html 特殊变量一般变量比较简单哈,与Java、C/C++不一样的地方在于不需要定义,直接使用即可。 例如: #!/bin/bash var= "wojiushimogui" echo ${var} 需要注意的两点: 1、变量和等号之间不能有空格。 2、使用变量的时候我们只需要在变量前面加上一个美元符号$即可。好的编程风格为:将变量用大括号括起来。例如:${var}相比$var 在风格上就更好。 这篇博文主要介绍下特殊变量。感觉比较有意思。 特殊变量列表如下:(截图来自于:http://c.biancheng.net/cpp/view/2739.html)
我们先来看一个例子。 1、新建一个名为exVar.sh文件,并输入如下的内容 #!/bin/bash echo $0 echo $1 echo $2 echo $* echo $@ echo $# 2、运行此文件:./exVar.sh AAAA BBBB CCCC. 结果如下:
$*和$@的区别这里有必要介绍下?和@的区别。 $* 和$@ 都表示传递给函数或脚本的所有参数,当$*和$@不被双引号(” “)包含时,都以”$1” “$2” … “$n” 的形式输出所有参数。 但是当它们被双引号(” “)包含时,“$*” 会将所有的参数作为一个整体,以”$1$2 …$n”的形式输出所有参数;”$@” 会将各个参数分开,以”$1” “$2” … “$n” 的形式输出所有参数。 看到上面这句话可能还不太好理解$*和$@的区别,下面通过一个例子就比较清楚的可以看出这两者的区别 1、新建一个文件diff.sh,并输入如下内容: 2、运行diff.sh。 ./diff.sh AAA BBB CCC结果如下: 看到上面的运行结果,再理解下下面这句话: $* 和$@ 都表示传递给函数或脚本的所有参数 1、当$*和$@不被双引号(” “)包含时,都以”$1” “$2” … “$n” 的形式输出所有参数。 2、但是当它们被双引号(” “)包含时,“$*” 会将所有的参数作为一个整体,以”$1$2 …$n”的形式输出所有参数;”$@” 会将各个参数分开,以”$1” “$2” … “$n” 的形式输出所有参数。 1、命令替换命令替换是指Shell可以先执行命令,将输出结果暂时保存,在适当的地方输出。 例如:date是linux是一个日期命令。我们在Shell编程中进行命令替换。 看一个例子: 1、新建一个testDate.sh,并输入如下内容 #!/bin/bash DATE= `date` echo "DATE is ${DATE}" 2、运行:./testDate.sh。 从结果中可以看到,确实进行了命令的替换。即Shell先执行命令date,将输出结果保存到了DATE变量中。 2、变量替换变量可以替换的形式有如下几种: 下面我们来写一个小Demo 代码如下: 运行结果如下: 在运行结果中,上半部分是程序有点错误,第一个错误为: var= "wojiushimogui" 这行代码的等号右边有一个空格。这也就告诉我们变量赋值的“=”两边都不能有空格。否则都会报错。 小结这些内容都比较简单,比较容易理解,写这些小Demo有如下两个目的: 1、加深自己对这些知识点的理解 2、更重要的是训练自己熟悉linux系统的使用。 参考资料1、http://c.biancheng.net/cpp/view/2737.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |