关于shell的一些语法

1.如何计算shell的运行时长:

starttime=$(date +%Y-%m-%d\ %H:%M:%S)
code
code
​​​​​​​code
endtime=$(date +%Y-%m-%d\ %H:%M:%S)
echo "starttime: $starttime" >> xxx.log
echo "endtime:   $endtime" >> xxx.log
start_seconds=$(date -d "$starttime" +%s);
end_seconds=$(date -d "$endtime" +%s);
# 以秒为表述形式
echo "本次运行时间: $((end_seconds-start_seconds)) s" >> xxx.log
duration=`echo $(($(date +%s -d "${endtime}") - $(date +%s -d "${starttime}"))) | awk '{t=split("60 s 60 m 24 h 999 d",a);for(n=1;n<t;n+=2){if($1==0)break;s=$1%a[n]a[n+1]s;$1=int($1/a[n])}print s}'`
#以时分秒为表述形式
echo "本次运行时间: $duration" >> xxx.log

2.if判断

if  [[ -z ${var} ]]

-z 表示不存在

-n 表示存在

3.用awk去读取内容

  var=$(awk -F '[:]+|[ ]+|["]' '/runpath/ {print $(NF-1)}' ${TMP_FILE_DIR})
awk [-F  field-separator]  'commands'  input-file(s)
其中,commands 是真正awk命令,[-F域分隔符]是可选的。 input-file(s) 是待处理的文件。
在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分

要处理的文件如下:

    name: "20220118_101230"
    duration: 20
    offset: 1755

上面的内容的意思是找到含有“runpath”的那一行,以 冒号: 、空格 、 和双引号作为分隔符,所有分割的结果会以数组的形式保存,print $(NF-1)表示我们提取出倒数第二个结果,即提取出具体的内容“20220118_101230”。

4.用sed去写数据

sed -i "s|[[:space:]]*run_path[[:space:]]*:.*|    run_path: \"${var}\"|" ${TMP_FILE_DIR}

这个代码表示去写入数据,匹配到包含runpath的行,[[:space:]]*表示可以有很多空格,:.*表示冒号后面可以有很多空格。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Shell是一种命令行解释器,它提供了一种与操作系统交互的方式。以下是Shell语言的一些基本语法: 1. 命令的执行 Shell中的命令可以通过在命令行输入它们来执行。例如,输入ls命令将列出当前目录中的文件和子目录。 2. 变量的定义和使用 变量可以用来存储和操作数据。Shell中的变量定义方式为:变量名=值。例如,定义一个名为name的变量,其值为John Doe,可以使用以下命令: ``` name="John Doe" ``` 在使用变量时,需要在变量名前加上$符号。例如,要输出name变量的值,可以使用以下命令: ``` echo $name ``` 3. 条件语句 Shell中的条件语句基本上与其他编程语言中的条件语句相同。例如,以下是一个if语句的语法: ``` if [ condition ] then command1 else command2 fi ``` 如果条件为真,则执行command1,否则执行command2。 4. 循环语句 Shell中的循环语句有for和while语句。例如,以下是一个for循环语句的语法: ``` for var in item1 item2 ... itemN do command1 command2 ... commandN done ``` 其中,var是循环变量,item1到itemN是要循环的项,command1到commandN是要执行的命令。 5. 函数的定义和调用 Shell中的函数定义方式为: ``` function_name () { command1 command2 ... commandN } ``` 要调用函数,只需使用函数名即可。例如: ``` function_name ``` 这些都是Shell语言的基本语法。当然,还有很多其他的语法和命令可以使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值