命令替换总结:

有两种方式:

`commond`
$(command)

例1:打印输出系统的所有用户

#!/bin/bash

index=1

for user in `cat /etc/passwd | cut -d ":" -f 1`
do
        echo "This is $index user: $user"
        index=$(($index+1))
done

例2:根据系统实际计算今年和明年的年份

#今年
echo "This is $(date +%Y) year"

#明年
echo "This is $(($(date +%Y) + 1)) year"

例3:根据系统时间获取今年还剩下多少星期,已经过了多少星期

echo "This year have passed $(date +%j) days"
echo "This year have passed $(($(date +%j)/7)) weeks"
echo "There are $((365 - $(date +%j))) days beafore new year"
echo "There are $(((365 - $(date +%j))/7)) weeks beafore new year"

例4:判断nginx进程是否存在,若不存在则自动拉起该进程

nginx_process_num=$(ps -ef | grep nginx | grep -v grep | wc -l)
if [ $nginx_process_num -eq 0 ];then
    systemctl start nginx
fi

总结:

  • ``和()两者是等价的,但推荐初学者使用$(),易于掌握;缺点是极少数UNIX可能不支持,但
    ``
    都是支持的;
  • $(())主要是用来进行整数运算,包括加减乘除,引用变量签名可以加$,也可以不加$
num1=70
num2=80
$((num1 + num2))
#等价于
$(($num1 + $num2))

标签: 命令, 替换