Shell小知识记录

记录一下日常脚本的使用

=~的使用

1
2
3
4
5
6
7
8
9
# 正则匹配,用来判断左侧的参数是否符合右边的规则
$: 以什么结尾
^: 以什么开头
例子: 输出/root/目录下以.jar结尾的文件
for row in `ls -l /root/ | awk '{print $9}'`; do
if [[ "$row" =~ \.jar$ ]]; then
echo "$row"
fi
done

readlink的使用

1
2
# 直接输出java脚本的真正位置
readlink -f /usr/bin/java

判断进程是否存在,不在则启动

1
2
3
4
5
6
7
8
PIDS=`ps -ef |grep command |grep -v grep | awk '{print $2}'`
if [ "$PIDS" != "" ]; then
echo "command is runing!"
else
cd /root/
./script
#运行进程
fi