linux 位置参数数组,荐Linux中的shell编程Ⅱ——位置参数、数组、date和cal

一、位置参量

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值