Bash Shell 语法快速预览

易百Bash Shell教程
创建
shell> touch t.sh

// t.sh
#!/bin/bash
echo "Hello, world"

运行

// linux 下直接运行。在window运行可以使用git Bash、cmder 
shell> ./t.sh
// 提示 Permission denied 需要增加运行权限
shell> chmod +x test.sh

注释

# 单行注释
: '
多行注释
'

变量

# 声明
varname_1=1
_var='_var' 
_var2="name: $_var"
_var=`ls`  #保存命令行运行的结果

#使用
echo $varname_1

读取命令行参数
shell> ./1.sh p1 p2

# 1.sh
: '
$1-9 九个参数变量
$* 所有参数拼接
$@ 数组保存
'
all=("$@")
echo $p1
echo ${all[0]}
'

读取用户输入

#1.sh
read name # 读取后保存到name变量中
read -p '名字: ' name # 增加提示
read -a names # 读取多个变量,空格分隔

休眠

#1.sh
echo `date`
sleep 2s
echo `date`

: '
秒s 分m 小时h 天d
sleep 2m 2s
'

运算

a=1
b=2
c=$((a+b))
echo $((a+1))

if 语句

#1.sh
#if
if [ 'a' == 'a' ]
then
  echo 'y'
fi
#if-else
if [ 'a' == 'a' ];
then
  echo 'y'
else
  echo 'else'
fi

#if-else-if
if [ -e "3.txt" ];
then
  echo 'y'
elif [ 'a' == 'a' ];
then
  echo 'n'
else
  echo 'else'
fi

# and
if [ 'a' == 'a' ] && [ 'b' == 'b' ]
then
  echo 'y'
fi
# or
if [ 'a' == 'a' ] || [ 'b' == 'b' ]
then
  echo 'y'
fi
# 操作符
: '
-n string 有字符
-z string 没有字符
string == string
!= 
-d 是否存在并且它是一个目录
-e 是否存在
1 -eq 1 等于
2 -gt 1 大于
1 -lt 2 小于
'

case

echo "Do you know Java Programming?"  
read -p "Yes/No? :" Answer  
case $Answer in  
    Yes|yes|y|Y)  
        echo "That's amazing."  
        echo  
        ;;  
    No|no|N|n)  
        echo "It's easy. Let's start learning from yiibai.com."  
        ;;  
    *)
        echo '?'
        ;;
esac

for

#遍历字符
learn="Start learning from yiibai.com"  
for learn in $learn  
do  
echo $learn  
done  

echo "Thank You."

# 10 到 1 每次增加1
for num in {10..0..1} 
do  
echo "$num "  
# break
# continue
done

while

i=10  
while [ $i -gt 1 ]  
do  
echo "$i"  
(( i-- ))  
done

until。直到true才停止

i=1  
until [ $i -gt 10 ]  
do  
echo $i  
((i++))  
done

字符串

#长度
${#str}

#查找字符串-------
#模糊匹配
s=`echo aao | grep a`
if [ ${#s} != 0 ]
then
echo 1
fi
# 全部对应
s=`echo ab | grep ^ab$`
if [ ${#s} != 0 ]
then
echo 1
fi

你可能感兴趣的:(Bash Shell 语法快速预览)