语法格式
方法一 `command`
方法二 $(command)
案例1:获取系统的所有的用户名 使用下面的命令是直接输出到屏幕上了
# cut 命令 -d 是指定的分隔符 -f 指的分隔开的第几段
~: cat /etc/passwd | cut -d ":" -f 1
root
daemon
bin
sys
...
而我们想用输出的用户名做操作 就需要用到反引号
#!/bin/bash
#将 cat /etc/passwd | cut -d ":" -f 1 的结果直接拿来用
for user in `cat /etc/passwd | cut -d ":" -f 1`
do
echo $user
done
使用$() 和反引号`的效果是一样的
#!/bin/bash
for user in $(cat /etc/passwd | cut -d ":" -f 1)
do
echo $user
done
案例2 : 根据系统时间计算今年或者明年
~:$ date
2019年 10月 26日 星期六 15:46:34 CST
~:$ date +%Y
2019
写入到脚本中可以使用
#!/bin/bash
echo This is $(date +%Y) year
计算明年的时间 使用 $() 是命令替换 ,使用$(( )) 中间的操作可以被视作算数运算
#!/bin/bash
echo This is $(($(date +%Y) + 1)) year
~$ num1=50
~$ num2=70
~$ echo "$(($num1 + num2))"
120
案例3: 今年剩余多少星期,已经过了多少星期
#!/bin/bash
echo "今年已经过了 $(($(date +%j) / 7 )) 星期,还剩 $(((365 - $(date +%j)) / 7)) 个星期"
案例4:判断 nginx进行是否存在,若不存在则自动拉起该进程
#!/bin/bash
# -v 是为了过滤掉本身 grep的进程 wc -l 是统计前面过滤之后还剩余的个数
nginx_process_num=$(ps -ef | grep nginx | grep -v grep | wc -l)
if [ $nginx_process_num -eq 0 ];then
systemctl start nginx
fi