shell脚本一些小技巧

这篇文章,是写shell的时候,用的一些东西,都是从自己的实践中总结的一些小点,会不断更新这个文章,属于自己的一个小笔记。基础知识可以看这篇文章一文掌握shell脚本的基本语法 - 知乎

目录

1 有一个test.properties文件,文件内容类似是name=zhangsan想取得name对应的数值

2还是有一个test.properties文件,文件内容类似是name=zhangsan想替换name对应的数值

3执行一个命令或者可执行文件,想要获取执行的结果,拿结果去做别的操作。可以用``,

就是tab键上面的`符号,加载命令两侧,就可以获取结果了

4判断一个文件是否存在,支持通配符

5判断一个文件中,某个字符串是否存在

6读取输入数据,确认输入数据

7有一个redis.conf文件,内容为requirepass 123456,获取123456值

8查看test进程PID


1 有一个test.properties文件,文件内容类似是name=zhangsan想取得name对应的数值

name=$(grep name= test.properties | cut -d'=' -f2)

echo $name

2还是有一个test.properties文件,文件内容类似是name=zhangsan想替换name对应的数值

sed -i "/name=/c name=lisi" test.properties

3执行一个命令或者可执行文件,想要获取执行的结果,拿结果去做别的操作。可以用``,

就是tab键上面的`符号,加载命令两侧,就可以获取结果了

content=`ls`

echo $content

4判断一个文件是否存在,支持通配符

files =$(ls ./t*.txt 2>/dev/null | wc -l)

if [ "$files" == "0" ];then 

 echo "当前目录下以t开头的txt文件不存在"

fi

5判断一个文件中,某个字符串是否存在

if !cat ./test.properties | grep "name" > /dev/null

then

     echo "当前目录下test.properties中不存在name字符串" 

fi

6读取输入数据,确认输入数据

while true; do
  read -p "数据库的端口:" PORT1
  read -p "确认数据库的端口:" PORT2
  if [ -n "$PORT1" ] && [ -n "$PORT2" ] && [ $PORT1 == $PORT2 ]; then
    break
  else
    echo "两次端口号输入不一致,请重新输入!"
  fi
done

7有一个redis.conf文件,内容为requirepass 123456,获取123456值

OP=$(grep "requirepass" ./redis.conf | awk '{print $2}')

echo $OP

8查看test进程PID

pid=$(ps -ef | grep test |grep -v grep | awk '{print $2}')

echo $pid

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值