Shell之常用语法总结

运算符

逻辑算符 || &&

#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!\"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值