Linux Shell 常见用法及问题

 开头先指定路径包含shell命令解释器 通常有几种写法:

#!/bin/bash    #!/usr/bin/bash
#!/bin/sh   #!/usr/bin/sh

导入其他shell文件,两种方式,这里以当前目录include.sh文件为例:

. include.sh
# source ./include.sh

定义变量只包含数字、字母和下划线且开头不能数字开头:

# 变量可以下划线开头
_t=0
a=10
b=20

取变量---变量名前加$

str="Hello World!"
echo $str
expr表达式
# expr表达式
c=`expr $a + $b`
echo $c
用户输入
# read输入
echo 'before input' $_t
read _t
echo 'after input' $_t


条件判断
# if判断
if test 10 -ge 20
#if [ 10 -ge 20 ]
then
    echo '10 >= 20'
else
    echo '10 < 20'
fi

if [ $a == $b ]
then
     echo 'a == b'
else
     echo 'a != b'
fi


# case判断
case $a in
1)
    echo 1
    ;;
4)
    echo 4
    ;;
8)
    echo 8
    ;;
10)
    echo 10
    ;;
esac


循环语句
# 各种循环
arr=(0 1 2 3 4)
# if
for i in ${arr[@]}
do
    echo -e $i
done

# while
# while : 死循环
echo "please input 'Ctrl + D' to exit"
while read FILM
do
    echo "Yeah! great film the $FILM"
done

# until
until [ $c == 32 ]
do
    echo $c
    c=$[ $c + 1 ]
done


Shell函数定义
# function test
function fun(){
    echo 'this is a function'
    return 0
}

# 调用函数 unset .f 删除
fun 1 2


一些特殊操作
# 特殊运算操作
echo $[$a + $b]

# 字符串变量 命令
cmd="echo"
$cmd "Hello World!"


遍历字符串每个字符
for i in `seq ${#content}`
do
  s=${content:(i-1):1}
  echo $s
done

把命令执行结果返回到变量

result=""
result=$((command) 2>&1)

变量++操作

i=$(($i+1))
i=$[$i+1]
i=`expr $i + 1`
let i++
let i+=1
原文地址:https://www.cnblogs.com/yddsblog/p/12659123.html