1 特殊变量
$n
n为数字,0代表该脚本名称,1-9代表第一到第九个参数,
十以上的参数需要用大括号包含,如${10}
#!/bin/bash
echo "$0 $1 $2 ${11}"
$#
获取所有输入参数个数,常用于循环
$?
最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了
$*
获取命令行所有的参数,看做整体
$@
获取命令行所有的参数,分区
2 条件判断
基本语法
(1)两个整数之间比较
= 字符串比较
-lt 小于(less than) -le 小于等于(less equal)
-eq 等于(equal) -gt 大于(greater than)
-ge 大于等于(greater equal) -ne 不等于(Not equal)
(2)按照文件权限进行判断
-r 有读的权限(read) -w 有写的权限(write)
-x 有执行的权限(execute)
(3)按照文件类型进行判断
-f 文件存在并且是一个常规的文件(file)
-e 文件存在(existence) -d 文件存在并是一个目录(directory)
巨蟹例子
[ 100 -ge 200 ]
echo $?
是否有写权限
[ -w helloworld.sh ]
文件是否存在
[ -e ~/test.py ]
3 流程控制
if
#!/bin/bash
if [ $1 -eq "1" ]
then
echo "if 1 body"
elif [ $1 -eq "2" ]
then
echo "if 2 body"
fi
for
#!/bin/bash
# 1到100累加
s=0
for((i=0;i<=100;i++))
do
s=$[$s+$i]
done
# 依次打印输入的参数
for i in $*
do
echo "ban zhang love $i "
done
echo $s
case
!/bin/bash
case $1 in
"1")
echo "第一个参数为1。。。"
;;
"2")
echo "第一个参数为2。。。"
;;
*)
echo "other"
;;
esac
while
#!/bin/bash
s=0
i=1
while [ $i -le 100 ]
do
s=$[$s+$i]
i=$[$i+1]
done
echo $s