如何执行Shell脚本?
比如脚本未知在 /home/shell.sh
//-x显示执行流程
# sh -x /home/shell.sh
执行环境
#!/bin/bash
因为我们使用的是 bash ,所以,必须要以【 #!/bin/bash 】来宣告这个文件内的语法使用 bash 的语法!
那么当这个程序被执行时,他就能够加载 bash 的相关环境配置文件 , 并且执行 bash 来使我们底下的指令能够执行。
shell 变量
if..then条件判断
shell 的风格,用倒序的字母单词和 正序的单词配对。
比如 if 语句, 结束时用 fi 来配对, esac是和case配对的.
//if 语句语法格式:
if [ condition ]
then
cmd
fi
//if else 语法格式
if [ condition ]
then
cmd1
else
cmd2
fi
//if else-if else 语法格式
if [ condition1 ]
then
cmd1
elif [ condition2 ]
then
cmd2
else
cmd3
fi
注意:if语句这有个坑,if空格[空格$? -eq 0空格]; if后面加空格,条件两边也得加空格,不然就会报错。
例子
a=10
b=20
if [ $a == $b ]
then
echo "a 等于 b"
elif [ $a -gt $b ]
then
echo "a 大于 b"
elif [ $a -lt $b ]
then
echo "a 小于 b"
else
echo "没有符合的条件"
fi
//输出:a 小于 b
for条件判断
for循环一般格式为:
for var in item1 item2 ... itemN
do
cmd1
cmd2
...
cmdN
done
例子1:
for loop in 1 2 3 4 5
do
echo "The value is: $loop"
done
输出结果:
The value is: 1
The value is: 2
The value is: 3
The value is: 4
The value is: 5
//2.顺序输出字符串中的字符:
for str in 'This is a string'
do
echo $str
done
输出结果:This is a string
例子2:还可以类似于java的循环
//输出1+2+......+100
s=0
for (( i=1; i<=100; i=i+1 ))
do
s=$((${s}+${i}))
done
echo "The result of '1+2+3+...+100' is ==> ${s}"