获取变量的方式:
1、echo $PATH
2、echo ${PATH}
3、echo "$PATH"
参数的提取:
$# ====== 参数的个数
$n ====== 第n个参数
$0 ====== 当前脚本名称
$@ ====== 取出所有参数
shift ====== 参数左移
执行过程:
1、创建一个脚本文件:touch abc.sh
2、编写脚本内容(单独讲解)
3、添加执行权限:chmod a+x abc.sh
4、当前目录执行:./abc.sh
脚本编写:
1、编写脚本头:#! /bin/bash ====== 声明脚本解释器(不写时会有默认的解释器)
2、注释的编写:以"#"作为标识,单行注释!
3、编写脚本内容:echo helloworld
for...in语句:
for x in `cat a.txt`; do echo $x; done ====== 循环取出文件中的所有单词,并迭代输出
for(())语句:
for(( i=0; i<10; i++ )); do echo $i; done
for99.sh(打印九九乘法表):
#!/bin/bash
for((i=1; i<10; i++)); do
for((j=1; j<=i; j++)); do
echo -en "$j"x"$i"=$((j*i))"\t";
done
echo;
done
shift.sh(测试shift的作用):
#!/bin/bash
for((i=1; i<10; i++));do
echo $@
shift;
done
执行该脚本:./shift.sh 1 2 3 4 5 6 7 8 9
if语句:
语法:if ...; then ...;elif ...; then ...;else ...; fi
if字符串变量表达式:
if [ $a=$b ] ====== 符号"="用作赋值时两边不能有空格
if [ $a = $b ] ====== 符号"="用作判断时两边必须有空格
if [ -n $a ] ====== 变量a非空,等价于:if[ $a ]
if [ -z $a ] ====== 变量a为空
if整数变量表达式:
if [ a -eq b ] ====== a等于b
if [ a -gt b ] ====== a大于b
if [ a -lt b ] ====== a小于b
if [ a -ne b ] ====== a不等于b
if [ a -ge b ] ====== a大于等于b
if [ a -le b ] ====== a小于等于b
age.sh(判断年龄对应的是少年、中年还是晚年):
#!/bin/bash
i=10
if [ $i -lt 30 ];
then echo young;
elif [ $i -lt 50 ];
then echo middle;
else echo old;
fi
while语句:
while9.sh:
#!/bin/bash
i=1
while(($i<10));do
echo $i
i=$((i+1));
done
while99.sh:
#!/bin/bash
i=1
while((i<10)); do
j=1
while((j<=i)); do
echo -ne "$j"x"$i"=$((j*i))"\t"
j=$((j+1));
done
i=$((i+1))
echo;
done
case语句:
case.sh:
#!/bin/bash
case $1 in
helloworld | tom ) echo 1 ;;
hello ) echo 2 ;;
* ) echo 3 ;;
esac
使脚本在每个目录都能识别并执行:将脚本放在/usr/local/bin下