linux bash 入门

Posted 布衣之莠sq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux bash 入门相关的知识,希望对你有一定的参考价值。

  1 #!/bin/bash
  2 
  3 #shell使用的熟练成都反映用户对Unix/Linux使用的熟练程度
  4 #shell 有两种执行命令的方式:交互式和批处理
  5 #常见的shell脚本解释器有bash,sh,csh等等
  6 #chmod +x ./hello.sh  #使脚本具有执行权限
  7 #./hello.sh  #执行脚本
  8 
  9 #交互输入
 10 echo "whats your name?"
 11 read person
 12 echo "hello,$person"
 13 
 14 #变量 定义不加$,引用要加$
 15 myname="shiqing"
 16 echo ${myname}
 17 
 18 #特殊变量
 19 echo "filename:$0"
 20 echo "first parameter:$1"
 21 echo "second parameter:$2"
 22 echo "all parameter:[email protected]"
 23 echo "all parameter:$*"
 24 echo "total number of parameters:$#"
 25 
 26 #命令替换 ~下 `command`
 27 USERS=`who | wc -l`
 28 echo "Logged in user are $USERS"
 29 
 30 #表达式,原生bash不支持简单的数学运算,expr 是一种表达式计算工具
 31 val=`expr 2 + 9`
 32 echo "value is $val"
 33 a=10
 34 b=20
 35 val=`expr $a \* $b`
 36 echo "a * b: $val"
 37 
 38 #字符串
 39 str="abcd"
 40 echo ${#str}
 41 echo ${str:1:4}
 42 
 43 #数组
 44 arr=(a,b,c,d)
 45 echo "first :${arr[0]}"
 46 echo "all:${arr[*]}" #获取所有元素
 47 echo "length:${#arr[*]}" #获取数组长度
 48 
 49 #if...elif...else...,条件表达式要放在方括号之间,并且要有空格
 50 a=10
 51 b=20
 52 
 53 if [ $a == $b ]
 54 then 
 55   echo "a is equal to b"
 56 elif [ $a -gt $b ]
 57 then 
 58   echo "a is g reater than b"
 59 else
 60   echo "a is less than b"
 61 fi
 62 
 63 #case ...easc...
 64 echo Input a number between 1 to 4
 65 echo Your number is:\c
 66 read aNum
 67 case $aNum in
 68     1)  echo You select 1
 69     ;;
 70     2)  echo You select 2
 71     ;;
 72     3)  echo You select 3
 73     ;;
 74     4)  echo You select 4
 75     ;;
 76     *)  echo You do not select a number between 1 to 4
 77     ;;
 78 esac
 79 
 80 #for...in...
 81 for loop in 1 2 3 4 5
 82 do
 83     echo "The value is: $loop"
 84 done
 85 
 86 #while...do...done...
 87 echo type <CTRL-D> to terminate
 88 i=0
 89 while read FILM
 90 do
 91     echo "Yeah! great film the $FILM"
 92     i=`expr $i + 1`
 93     b=3
 94     if [ $i-gt$b ] #expression 和方括号([ ])之间必须有空格,否则会有语法错误。
 95       then 
 96         break
 97     fi
 98 done
 99 
100 #until...do...done
101 a=0
102 until [ ! $a -lt 10 ]
103 do
104    echo $a
105    a=`expr $a + 1`
106    val=`expr $a + $b`
107 done
108 
109 
110 #函数
111 funWithParam(){
112     echo "The value of the first parameter is $1 !"
113     echo "The value of the second parameter is $2 !"
114     echo "The value of the tenth parameter is $10 !"
115     echo "The value of the tenth parameter is ${10} !"
116     echo "The value of the eleventh parameter is ${11} !"
117     echo "The amount of the parameters is $# !"  # 参数个数
118     echo "The string of the parameters is $* !"  # 传递给函数的所有参数
119 }
120 funWithParam 1 2 3 4 5 6 7 8 9 34 73
121 
122 funWithReturn(){
123     echo "The function is to get the sum of two numbers..."
124     echo -n "Input first number: "
125     read aNum
126     echo -n "Input another number: "
127     read anotherNum
128     echo "The two numbers are $aNum and $anotherNum !"
129     return $(($aNum+$anotherNum))
130 }
131 funWithReturn
132 ret=$? #函数返回值在执行函数后通过$?获得
133 echo "The sum of two numbers is $ret !"
134 
135 #输入输出重定向 >,>>(追加), <
136 who>users
137 wc -l<users

 

以上是关于linux bash 入门的主要内容,如果未能解决你的问题,请参考以下文章

sh Bash的代码片段

Linux bash基础特性二

linux bash 入门

Linux Bash Shell编程快速入门

Linux系统入门-Bash

谢烟客---------Linux之bash脚本编程---if补充和for循环