Shell常用语法总结
布尔运算符 ! -a -o
数组的定义及打印方法
从控制台读取数据并打印
赋值,删除,单双引号
导包调用其它脚本文件的方法
脚本内方法的编写
我的方法
输出字体加颜色
While ,for无限循环 case选择结构
while循环
Until
Let
while
乘法口诀
1到100的和
for循环的字符串用法
If语句比较大小
while循环读取content文件,将adds.txt文件覆盖到content文件
格式输出
test几种用法
运算符
逻辑算符 || &&
#a=10#b=15#if [[ $a -ge 10 && $b -le 15 ]]#then#echo \"$a -ge 10 && $b -le 15: true\"#else#echo \"$a -ge 10 && $b -le 15: false\"#fi
布尔运算符 ! -a -o
#a=100#b=150#if [ $a -ge 100 -a $b -gt 150 ]#then#echo \"$a -gt 100 -a$b -gt 150: true\"#else#echo \"$a -gt 100 -a$b -gt 150: false\"#fi
数组的定义及打印方法
arry=(\"张三\" \"list\" 32 28)echo ${arry[2]}echo \"------取全部值----------\"echo \"数组的个数为:${#arry[*]}\"echo \"数组的个数为:${#arry[@]}\"echo \"数组的所有元素为:${arry[*]}\"echo \"数组的所有元素为:${arry[@]}\"echo \"--------1----------\"for i in $(seq 0 ${#arry[@]})doecho ${arry[$i]}doneecho \"--------2----------\"#数组通过for的遍历方式for value in ${arry[*]}doecho $valuedone
从控制台读取数据并打印
#echo \"文件名:$0\"#echo \"长度:$#\"#echo \"所有:$*\"#for i in \"$*\"#do#echo $i#done#for value in \"$@\"#do#echo $value#doneread nameecho $name is a 大帅哥echo \"参数个数为:$#\"echo \"shell传参\"echo \"文件路径及名字:$0\"echo \"第一个参数:$1\"echo \"第一个参数:$2\"
赋值,删除,单双引号
myName=\"gree\"echo ${myName}echo \"$myName hei\"echo \'$myName hei\'#unset myName#echo $myName
导包调用其它脚本文件的方法
#!/bin/bash. ./fundemo.shnum1=200num2=300sum=`myFunReturn $num1 $num2`echo \"contains.sh 传值求和: $sum\"
脚本内方法的编写
myFunReturn(){#read -p \"请输入一个数字:\" num1#read -p \"请输入一个数字:\" num2num1=$1num2=$2#value=$[num1+num2]#echo \"方法内的结果:$value\"echo $[num1+num2]}sum=`myFunReturn 21 2222`echo \"两个数的和为:$sum\"
我的方法
fun(){read -p \"第一个数:\" nu1read -p \"第二个数:\" nu2#return $(($nu1+$nu2))#return `expr $nu1 + $nu2`#sum=`expr $nu1 + $nu2`#sum=$[ nu1 + nu2 ]sum=$((nu1 + nu2))echo $sum}value=`fun 21 2222`echo \"两数之和为:$value\";#echo $?(这一行用于方法内return返回值的接受输出,以上方法没有用到)
输出字体加颜色
#myFun(){#echo -e \"\\033[32mHello World!\\033[0m\"#}#echo \"start\"#myFun#echo \"end\"
While ,for无限循环 case选择结构
while true
doread -p \"请输入一个数字:\" aNumcase $aNum in1)echo \"choose 1\";;2)echo \"choose 2\";;*)echo \"no choose\"break;;esacdone
for(( ; ; ))
doecho \"请输入1-3之间的数\"read nucase $nu in1) echo 1;;2) echo 2;;3) echo 3;;*) echo \"游戏结束\"break;;esacdone
while循环
#a=999#b=666##while (( $a >= 992 ))#do#echo \"当前 a 的值为:$a\"#let \"a--\"#done
Until
#a=0#until((a>10))#do#echo \"$a\"#let ++a#done#a=0#until [ ! $a -lt 10 ]#do#echo \"$a\"#a=$[a+1]#done
Let
#let a=5+3#let b=5-3#let c=a++#let d=b--#echo \"$a $b $c $d\"
while
#int=1#while(( $int<=10 ))#do#echo $int#int=$[int+1]#done
乘法口诀
#for((i=1; i<=9; i++))#do#for((j=1; j<=i; j++))#do#echo -n -e \"$j*$i=$[i*j]\\t\"#done#echo \"\"#done
高级版本
for i in $(seq 9)dofor j in $(seq $i)doecho -n -e \"$j*$i=$(($i*$j))\\t\"doneecho \"\"done我的版本#ji=0#for((i=9; i>=1; i-- ))#do#for((j=9; j>=i; j-- ))#do#echo -n -e \"$i*$j=$[i*j] \"#done#echo \"\"#done
1到100的和
#sum=0#for((i=1; i<=100; i++))#do#sum=`expr $i + $sum`#done#echo \"$sum\"
for循环的字符串用法
#for str in \"This\" \"is\" \"a\" \"string\"#do#echo \"$str\"#done#for num in 1 2 3 4 11#do#echo \"$num\"#done
If语句比较大小
#num1=100#num2=200#if [ $num1 == $num2 ]#then#echo \"两个数相等\"#elif [ $num1 -gt $num2 ]#then#echo \"num1大于num2\"#else#echo \"num1小于num2\"#fi
while循环读取content文件,将adds.txt文件覆盖到content文件
#!/bin/bashwhile read contentdoecho $content | grep \"142\" | sed \'s/,/ /g\' | awk \'{print $2}\'done < adds.txt | sed -n \'1,3p\'
格式输出
printf \'%s\\t%s\\t%s\\n\' gree wanglei zhangjun#printf \'%s\\n\' gree wanglei zhangjun#printf \'%s %d\\n\' gree 32#printf \"%10s %10s %10s\\n\" 姓名 性别 体重kg#printf \"%-10s %-10s %-10s\\n\" 姓名 性别 体重kg#printf \"%-10s %-10s %-4.2f\\n\" 张三 男 53.1264#printf \"%-10c %-10s %-4.2f\\n\" abcde 男 53.1264
test几种用法
#echo \"Hello Shell\"#printf \"Hello, Shell \"#echo \"Hai\"if test -e /home/zxlthenecho \"有\"elseecho \"没有\"fi#num1=100#num2=200#if test $num1 -eq $num2#then#echo \"相等\"#else#echo \"不相等\"#fi#result=$[num1+num2]#result1=`expr $num1 + $num2`#echo \"$result \\t $result1\"echo stringecho \"hello world!\"echo \'\"hello world!\"\'echo \\\"hello world!\\\"