Linux系统中sh脚本编写

文章目录

  • Linux系统中sh脚本编写
  • 1.在编写sh脚本前了解一下基本语法
    • 1.1 if语句
      • 单分支
      • 双分支
      • 多分枝
    • 1.2 for语法
  • 2. 自己写的demo :自动部署前端项目 (自动拉取代码,打包,部署nginx)
  • 3.定时执行 shell脚本

Linux系统中sh脚本编写

我们在使用linux系统开发的过程中,经常会遇到一些重复的操作,想copy, push等等。这个时候我们就可以自己编写一个sh脚本,使用sh脚本操作这些重复的动作。直接 sh xx.sh脚本执行命令即可

#!/bin/sh 和 #!/bin/bash 都是脚本文件的开头,用来指定脚本文件的解释器。其中 #!/bin/sh 指定的是 Bourne shell 解释器,而 #!/bin/bash 指定的是 Bash shell 解释器。

Bash shell 是 Bourne shell 的增强版,它支持更多的特性和语法。因此,如果脚本中需要使用 Bash shell 特有的语法或特性,就需要使用 #!/bin/bash 来指定解释器。


1.在编写sh脚本前了解一下基本语法

1.1 if语句

这里注意:
-x:判断 文件夹 是否存在并且是否具有可执行权限
-f: 判断 判断$myPath是否存在
-d:判断 文件夹 是否存在
-n:判断一个变量是否有值

#!/bin/sh
myPath="/var/log/httpd/"
myFile="/var/log/httpd/access.log"
# -x 判断$myPath是否存在并且是否具有可执行权限
if [ -x "$myPath" ];then
  #mkdir "$myPath"
	echo $myPath
fi

# -d 判断$myPath是否存在
if [ -d "$myPath" ];then
  #mkdir "$myPath"
echo $myPath
fi

# -f 判断$myFile是否存在
if [ -f "$myFile" ];then
  #touch "$myFile"
echo $myFile
fi

# -n 判断一个变量是否有值
if [ -n "$myVar" ];then
  echo $myVar "is empty"
  exit 0
fi

# 判断两个变量是否相等
if [ "$var1" = "$var2" ];then
  echo "$var1 eq $var2"
else 
  echo "$var1 not eq $var2"
fi

if判断分为三个类型:单分支、双分支、多分支。

单分支

[root@bigData01 test]# cat if.sh 
#!/bin/bash
read a
read b
if (( $a == $b ))
then
    echo "a和b相等"
fi
[root@bigData01 test]# bash if.sh 
12
12
a和b相等


双分支

[root@bigData01 test]# cat if.sh 
#!/bin/bash
read a
read b
if (( $a == $b ))
then
    echo "a和b相等"
else
    echo "a和b不相等,输入错误"
fi
[root@bigData01 test]# bash if.sh 
12
13
a和b不相等,输入错误

多分枝

[root@bigData01 test]# cat if.sh 
#!/bin/bash
printf "Input integer number: "
read num
if ((num==1)); then
    echo "Monday"
elif ((num==2)); then
    echo "Tuesday"
elif ((num==3)); then
    echo "Wednesday"
elif ((num==4)); then
    echo "Thursday"
elif ((num==5)); then
    echo "Friday"
elif ((num==6)); then
    echo "Saturday"
elif ((num==7)); then
    echo "Sunday"
else
    echo "error"
fi
[root@bigData01 test]# bash if.sh 
Input integer number: 5
Friday

1.2 for语法

#!/bin/bash

for ((i =1;i<=5;i++));
do
	sleep 1
	echo $i
done

2. 自己写的demo :自动部署前端项目 (自动拉取代码,打包,部署nginx)

#!/bin/bash

cd /root/workspace/jianda
echo "***********拉取代码"
git pull origin gw
echo "***********打包"
npm run build


echo "***********拷贝新的安装包"
if [ -d "./jianda" ];then
        echo "jianda文件夹存在"
        rm -r jianda
else
        echo "文件不存在,不用删除了"
fi

mv dist jianda
cp -r src/assets/images/loading/* jianda/assets
rm -r /var/www/jianda
cp -r jianda /var/www

echo "拷贝成功"

nginx -s reload
echo “nginx -s reload success”

3.定时执行 shell脚本

Linux系统中sh脚本编写_第1张图片

你可能感兴趣的:(shell脚本,前端技巧方法,linux,chrome,运维,shell脚本)