语法格式 | |
---|---|
方法一 | `command` |
方法二 | $(command) |
例子一:获取系统的所有用户并输出
cat /etc/passwd
获取到当前服务器的所有用户,第一个冒号是用户名
注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序
cut -d 指定分隔符
-f :取第几端
man cat :查看cat帮助文档
#!/bin/bash
#
index=1
for user in `cat /etc/passwd | cut -d ":" -f 1`
do
echo "这是第 $index 个用户,他的名字是 $user"
index=$(($index + 1))
done
#!/bin/bash
#
index=1
for user in $(cat /etc/passwd | cut -d ":" -f 1)
do
echo "这是第 $index 个用户,他的名字是 $user"
index=$(($index + 1))
done
根据系统时间计算今年或者明年
#!/bin/bash
#
echo "今年是$(date +%Y)年"
echo "明年是$(( $(date +%Y)+1 ))年"
例子三:根据系统时间获取今年还剩下多少个星期,已经过了多少星期
#!/bin/bash
#
echo "今年还剩$(( (365-$(date +%j))/7 ))周"
echo "今年已经过了$(( $(date +%j)/7 ))星期"
例子四:判定nginx进程是否存在,若不存在则自动拉起该进程
-v 显示不包含匹配的文本所有行
-c 只输出匹配的行的个数
-i 不区别大小写
wc -c filename:显示一个文件的字节数
wc -m filename:显示一个文件的字符数
wc -l filename:显示一个文件的行数
wc -L filename:显示一个文件中的最长行的长度
wc -w filename:显示一个文件的字数
#!/bin/bash
#
nginx_process_num=$(ps -ef | grep nginx | grep -v grep |wc -l)
echo $nginx_process_num
if [ $nginx_process_num -eq 0 ] ;then
echo "执行到此"
systemctl start nginx.service
fi
总结: ``和$()两者是等价的,易于掌握;缺点是极少的UNIX可能不支持,``是全部支持的
$(())主要用来进行整数运算,包括加减乘除,引用变量前可以加$,也可以不加
$(( (100+30) / 13 ))
num1=20; num2=30
$(($num1+$num2))
$((num1+num2))