运算符
逻辑算符 || &&
#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[@]})
do
echo ${arry[$i]}
done
echo "--------2----------"
#数组通过for的遍历方式
for value in ${arry[*]}
do
echo $value
done
从控制台读取数据并打印
#echo "文件名:$0"
#echo "长度:$#"
#echo "所有:$*"
#for i in "$*"
#do
#echo $i
#done
#for value in "$@"
#do
#echo $value
#done
read name
echo $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.sh
num1=200
num2=300
sum=`myFunReturn $num1 $num2`
echo "contains.sh 传值求和: $sum"
脚本内方法的编写
myFunReturn(){
#read -p "请输入一个数字:" num1
#read -p "请输入一个数字:" num2
num1=$1
num2=$2
#value=$[num1+num2]
#echo "方法内的结果:$value"
echo $[num1+num2]
}
sum=`myFunReturn 21 2222`
echo "两个数的和为:$sum"
我的方法
fun(){
read -p "第一个数:" nu1
read -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
do
read -p "请输入一个数字:" aNum
case $aNum in
1)
echo "choose 1"
;;
2)
echo "choose 2"
;;
*)
echo "no choose"
break
;;
esac
done
for(( ; ; ))
do
echo "请输入1-3之间的数"
read nu
case $nu in
1) echo 1;;
2) echo 2;;
3) echo 3;;
*) echo "游戏结束"
break;;
esac
done
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)
do
for j in $(seq $i)
do
echo -n -e "$j*$i=$(($i*$j))\t"
done
echo ""
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/bash
while read content
do
echo $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/zxl
then
echo "有"
else
echo "没有"
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 string
echo "hello world!"
echo '"hello world!"'
echo \"hello world!\"