Linux Shell脚本常用命令

定义变量

变量算是sh脚本中用到比较多的东西,一般用法如下

NGINX_DIR="/usr/local/nginx/html/"

上面是直接定义一个变量,如果你需要将某一行执行语句的运行结果存到变量中去的话,写法如下

# 将反引号中的语句执行结果保存到 filewhole 变量中去
filewhole=`find  /user/local  -name  *.html`

引用变量

引用变量有好几种方式,就拿上面定义的变量来举例子,两种常用的

${NGINX_DIR}
$NGINX_DIR

假如你要引用变量到你执行的语句中去,不用像Java一样拼接字符串,直接把变量丢进去就行,就如

str1="这是字符串1"
str2="这是第二个字符串"
echo $str1$str2

执行结果就为 : 这是字符串1这是第二个字符串

[root@localhost ~]# str1="这是字符串1"
[root@localhost ~]# str2="这是第二个字符串"
[root@localhost ~]# echo $str1$str2
这是字符串1这是第二个字符串

echo

这是比较常用的一种命令,相当于向控制台输出文本,用法如下

echo "nginx html执行路径:"${NGINX_DIR}

判断条件if

既然写sh脚本,就经常会用到条件判断if

if [ $filewhole != "/usr" ];
    then
        echo "条件成立!"
    else
        echo "条件不成立!"
fi

这是一个简单的判断字符串操作,就和Java中的equals一样,if后面必须要有fi结束语句

当然你也可以把else去掉

对变量进行计算

很多时候,我们需要对数字类型的变量进行运算

num1=123
num2=321
result=$((num1*num2))

#输出结果result
[root@localhost ~]# echo $result
39483

常用命令

获取当前所在的路径(pwd)
nowFile=`pwd`
获取当前日期(yyyyMMdd)
datenow=$(date "+%Y%m%d")
获取当前时间(HHmmss)
timenow=$(date "+%H%M%S")
从文件完整路径获取文件名
file_whole_path="/usr/local/tomcat8/webapps/test.war"
file_name="${file_whole_path##*/}"

# 输出结果: test.war
[root@localhost ~]# echo $file_name
test.war
从文件名中提取后缀名和真实文件名(无后缀)
file_name="test.war"
file_realname="${file_name%%.*}"
file_extension="${file_name##*.}"

# 输出结果: 
[root@localhost ~]# echo $file_realname
test
[root@localhost ~]# echo $file_extension
war
统计结果的行数 wc -l(常用于find指令识别返回结果数量)
count=`find /usr/local/tomcat8/webapps/ -name *.war  |  wc -l`

# 输出结果: /usr/local/tomcat8/webapps/ 这个目录下 war包 的数量
[root@localhost webapps]# echo $count
1
评论区
头像
文章目录