这篇文章,是写shell的时候,用的一些东西,都是从自己的实践中总结的一些小点,会不断更新这个文章,属于自己的一个小笔记。基础知识可以看这篇文章一文掌握shell脚本的基本语法 - 知乎
目录
1 有一个test.properties文件,文件内容类似是name=zhangsan想取得name对应的数值
2还是有一个test.properties文件,文件内容类似是name=zhangsan想替换name对应的数值
3执行一个命令或者可执行文件,想要获取执行的结果,拿结果去做别的操作。可以用``,
7有一个redis.conf文件,内容为requirepass 123456,获取123456值
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