shell 脚本 输入参数 学习
2017-12-08 14:41
253 查看
以下内容转载自:http://blog.csdn.net/u010412719/article/details/52895317
一般变量比较简单哈,与Java、C/C++不一样的地方在于不需要定义,直接使用即可。
例如:
需要注意的两点:
1、变量和等号之间不能有空格。
2、使用变量的时候我们只需要在变量前面加上一个美元符号$即可。好的编程风格为:将变量用大括号括起来。例如:${var}相比$var 在风格上就更好。
这篇博文主要介绍下特殊变量。感觉比较有意思。
特殊变量列表如下:(截图来自于:http://c.biancheng.net/cpp/view/2739.html)
我们先来看一个例子。
1、新建一个名为exVar.sh文件,并输入如下的内容
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” 的形式输出所有参数。
命令替换是指Shell可以先执行命令,将输出结果暂时保存,在适当的地方输出。
例如:date是linux是一个日期命令。我们在Shell编程中进行命令替换。
看一个例子:
1、新建一个testDate.sh,并输入如下内容
2、运行:./testDate.sh。
结果如下:
从结果中可以看到,确实进行了命令的替换。即Shell先执行命令date,将输出结果保存到了DATE变量中。
变量可以替换的形式有如下几种:
下面我们来写一个小Demo
代码如下:
运行结果如下:
在运行结果中,上半部分是程序有点错误,第一个错误为:
这行代码的等号右边有一个空格。这也就告诉我们变量赋值的“=”两边都不能有空格。否则都会报错。
这些内容都比较简单,比较容易理解,写这些小Demo有如下两个目的:
1、加深自己对这些知识点的理解
2、更重要的是训练自己熟悉linux系统的使用。
1、http://c.biancheng.net/cpp/view/2737.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
相关文章推荐
- Shell 编程学习笔记:脚本输入参数
- shell学习 - 处理脚本的多参数输入
- Shell脚本中判断输入变量或者参数是否为空的方法
- shell脚本选项参数处理学习getopts|getopt
- [shell脚本学习]处理用户输入
- Shell脚本中判断输入参数个数的方法 ,包括默认的$0,$1,-d ,-eq -n -z 等逻辑判断选项
- Shell脚本中判断输入参数个数的方法
- Shell脚本中判断输入变量或者参数是否为空的方法
- 今天写的shell脚本,主要是对输入参数检验
- Shell脚本中判断输入参数个数的方法
- 【Shell脚本学习23】Shell函数参数
- Shell脚本中判断输入参数个数的方法投稿:junjie 字体:[增加 减小] 类型:转载
- Shell脚本学习笔记-用户输入处理
- 脚本学习-----常用shell脚本if参数
- Perl脚本学习经验(一)------如何判断执行脚本时的输入参数是否正确
- shell脚本学习总结,参数
- linux学习之shell脚本 ------- 输入与输出
- shell脚本中用getopts处理用户输入选项和参数
- shell脚本传参实现scp命令无需输入密码和别的参数
- shell脚本之判断输入参数是否为整数值的实例