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
神马东西,什么鬼!!
┏┛墓┗┓...(((m -__-)m