一、位置参量
1.简介
位置参量是一组特殊的内置变量,通常被shell脚本用来从命令行接受参数,或被函数用来保存传递给它的参数。
执行shell脚本时,用户可以通过命令行向脚本传递信息,跟在脚本名后面的用空格隔开的每个字符串都称为位置参量。
在脚本中使用这些参数时,需通过位置参量来引用。例如:
$1表示第一个参数,$2表示第二个参数,以此类推。$9
以后需要用花括号把数字括起来,如第10个位置参量以
${10}的方式来访问。
2.位置参量列表
符号
说明
$0
当前脚本的文件名
$1~$9
第1个到第9个位置参量
${10}
第10个位置参量,类似地,有${11}
$#
位置参量的个数
$*
以单字符串显示所有位置参量
$@
未加双引号时与$*含义相同,加双引号时有区别
$$
脚本运行的当前进程号
$!
最后一个后台运行的进程的进程号
$?
显示前面最后一个命令的退出状态。0表示没有错误,其他任何值表示有错误。
3.传递位置参数
给shell程序传递参数
shell_test.sh this is linux
如果位置参量中含有空格,则需要使用双引号
shell_test.sh this is "our linux"
举例:
[jingkong@muguangjingkong ~]$ sh test.sh this is linux
: command not found
hello this - is - linux !!!
==========
test.sh
==========
this
==========
3
4.退出码
任何命令进行时都将返回一个退出状态。
查看命令: echo $?
应用中通常会在关键步骤后判定$?,已确定关键步骤的执行是否正常
尤其调度系统里需要监控sh返回码。
shell脚本的返回码取决于最后一个命令的返回码!
程序控制返回码: exit N
退出状态0成功,无错误。
退出状态大于0, 失败,某处有错误。
二、数组
1.数组定义与初始化
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。
与大部分编程语言类似,数组元素的下标由0开始。
Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:
arr=(math english chinese)
2.数组的引用与赋值
引用变量:
${arr[0]}
数组个数:
${#arr[*]}
所有元素:
${arr[*]}
赋值
arr[0]=chemical
3.试验
[jingkong@muguangjingkong ~]$ arr=(math english chinese)
[jingkong@muguangjingkong ~]$ echo $arr[0]
math[0]
[jingkong@muguangjingkong ~]$ echo ${arr[0]}
math
[jingkong@muguangjingkong ~]$ echo ${#arr[*]}
3
[jingkong@muguangjingkong ~]$ echo ${arr[*]}
math english chinese
[jingkong@muguangjingkong ~]$ a=(1,2,3)
[jingkong@muguangjingkong ~]$ echo ${a[0]}
1,2,3
三、date和cal命令
1.date 命令
1.1 获取时间
如果在文字接口中想要知道目前Linux系统的时间,那么就直接在指令列模式输入date即可显示:
[jingkong@muguangjingkong ~]$ date
Sun Apr 19 13:11:30 CST 2020
上面显示的是:星期日,四月十九日,13:11分,30秒,在2020年的CST时区!
1.2 格式化输出
如果我想要让这个程序显示出 2020/04/19
这样的日期显示方式呢?那么就使用date的格式化输出功能吧
[jingkong@muguangjingkong ~]$ date +%Y/%m/%d
2020/04/19
[jingkong@muguangjingkong ~]$ date +%H:%M
13:14
1.3 利用date指令来取得所需要的档名
date1=$(date --date='2 days ago' + %Y%m%d) #前两天的日期
date2=$(date --date='1 days ago' + %Y%m%d) #前一天的日期
date3=$(date +%Y%m%d) #今天的日期
[jingkong@muguangjingkong ~]$ echo ${date3}
20200419
2.cal命令
cal命令: 显示指定月份的日历
基本语法为:
$ cal [month] year
试验:
cal # 显示当前月
cal 2018 # 显示2018年
cal 6 2018 # 显示2018年6月
原文链接:https://blog.csdn.net/muguangjingkong/article/details/105638316