linux 下 Shell 命令初探
什么是 Shell?
我们在 linux 终端下能做到的操作,如 cd,cp,mv 等
都能同样写到.sh 脚本文件里面去,
此时我们执行该脚本文件,就等于执行了里面的多个操作和命令.
那么我们写一个最简单的.sh 文件
文件名 simple.sh
#!/bin/bash cd /usr/local/ pwd
接下来我们给该文件加上执行的权限,
chmod u+x simple.sh
Shell 下的变量
1.自定义变量
2.系统变量
3.命令返回值变量
#自定义变量,等号两边不能加空格!
#!/bin/bash age=24 name=zhangsan echo $name is $age years old
#系统变量,系统变量都是大写的!
#!/bin/bash echo $USER echo $HOME
#命令返回值变量,用(`)符号将语句包起来可以赋值给一个变量!
#!/bin/bash dt=`date` echo $dt
Shell 表达式
控制结构有(if/ case/for/while)
if 判断表达式
#!/bin/bash if mkdir test then echo 'mkdir ok' else echo 'fail' fi
bash 风格的 for 循环
格式如下:
for 变量名 in 值 1 值 2 值 3 …. 值 n
do
语句 1
语句 2
….
done
#!/bin/bash for i in A B C D E do echo $i done
c 风格的 for 循环
格式如下:
for((变量=初始值;变量<=n;变量++))
do
语句 1
语句 2
...
done
#!/bin/bash for((i=1;i<=100;i++)) sum=0 do sum=$[ $sum + $i ] done echo $sum
case 结构
格式如下:
case 变量 in
可能性 1)
语句 1
语句 2
;;
可能性 2)
语句 1
语句 2
;;
*)
语句 1
语句 2
;;
#!/bin/bash case $USER in root) echo -n "you" echo -n "are" echo "root";; nobody) echo you are nobody *) echo sorry! esac
文件判断表达式
格式 1:[ -d/-f/-e/-r-w/-x filename ]
分别判断
-d 文件是否存在且是目录
-f 文件是否存在且是文件
-e 是否存在
-r 是否可读
-w 是否可写
-x 是否可执行
格式 2: [ file1 -nt/-ot file2 ]
分别判断
-nt 检查 file1 是否为 file2 新
-ot 检查 file1 是否为 file2 旧
#!/bin/bash if [ -d ./dir2 ] then ls dir2 else echo dir2 is not exists fi
数学比较表达式
数学表达式的结构:[ $var1 -gt/-lt/-eq/-ge/-le/-ne $var2 ]
注意:中括号两端各有 1 空格
比较运算符的含义见下:
-gt >
-lt <
-ge >=
-le <=
-eq =
-ne !=
#!/bin/bash var1=8 var2=12 if [ $var1 -gt $var2 ] then echo $var1 more than $var2 elif [ $var1 -eq $var2 ] then echo $var1 equal $var2 else echo $var1 less than $var2 fi
字符串判断表达式
格式:[ $str1 =/!= str2 ]
注意:中括号两端各有 1 空格
#!/bin/bash var1=hello var2=world if [ $var1 = $var2 ] then echo $var1 is $var2 else echo $var1 is not $var2
OK,Shell 语法入门就介绍到这里了!