标签:ade 之间 结构 文件 返回 算术运算 tty 大小 匹配
1. shell脚本参数
注:变量$@可以以“参数1”“参数2”“参数3”..的形式返回所有的参数的值,因此,$@与“$1”"$2""$3"...是等价的;如果用户传递的参数中包含空格或者其他的特殊字符,需要使用$@来获取所有的参数的值,不能使用$*。
2. 变量和引用
# x=acdqw12 # m=${x/acd/1} # echo $m #m=1qw12
# echo $SHELL # /bin/bash; # echo \$SHELL # $SHELL.
`shell_command`==$(shell_command)
# v1=Linux # v2=‘RedHet Linux‘ # v3="Redhat Linux $HOSTTYPE" # v4=12345.
unset variable_name
3. 条件测试
test number1 op number2或者[ number1 op number2 ]
test op file或者[ op file ]
! expression 逻辑非 expression -a expression2 逻辑与 expression1 o expression2 逻辑或
if expression then statement1 statement2 ... fi
或者
if expression;then
statement1
statement2
fi
if else
#!/bin/bash echo "please enter a score" #输入提示信息 read score #读取用户输入数据 #如果用户没有输入数字,提示用户重新输入 if [ -z "$score" ];then #-z是否为空串 echo "You enter nothing.Please enter a score:" read score else #如果用户输入的数据不对,则重新输入 if [ "$score" -lt 0 -o "$score" -gt 100 ]; then echo "The score should be between 0 and 100.Please enter again:" read score else #输出A if [ "$score" -ge 90 ]; then echo "The grade is A." else #输出B if [ "$score" -ge 80 ]; then echo "The grade is B." else #输出C if [ "$score" -ge 70 ]; then echo "The grade is C." else #输出D if [ "$score" -ge 60 ]; then echo "The grade is D." else #输出E echo "The grade is E." fi fi fi fi fi fi
if elif
#!/bin/bash echo "please enter a score" #输入提示信息 read score #读取用户输入数据 #如果用户没有输入数字,提示用户重新输入 if [ -z "$score" ];then #-z是否为空串 echo "You enter nothing.Please enter a score:" read score else #如果用户输入的数据不对,则重新输入 if [ "$score" -lt 0 -o "$score" -gt 100 ]; then echo "The score should be between 0 and 100.Please enter again:" read score else #输出A if [ "$score" -ge 90 ]; then echo "The grade is A." #输出B elif [ "$score" -ge 80 ]; then echo "The grade is B." #输出C elif [ "$score" -ge 70 ]; then echo "The grade is C." #输出D elif [ "$score" -ge 60 ]; then echo "The grade is D." else #输出E echo "The grade is E." fi fi fi
case
case variable in value1) statement1 statement2 ... statementn;; value2) statement1 statement2 ... statementn;; ... valuen) statement1 statement2 ... statementn;; *) statement1 statement2 ... statementn;; esac
在上面的语法中,variable是一个变量,case语句会将该变量的值与value1~valuen中的每个值进行比较,如果与某个value的值相等,则执行该value所对应的一组语句。当遇到“;;”符号的时候,就跳出case语句,执行esac语句后面的语句,如果没有任何一个值与variable的值相匹配,则执行*后面的一组语句。
注:对于上面的case语句,用户应该注意以下几点:
i 对于变量名variable,可以使用双引号,也可以不使用;
ii 每个case子句中的条件测试部分,都以右括号“)”结束;
iii 每个case子句都以一对分号“;;”作为结束符,在脚本执行的过程中,当遇到一对分号时,会跳过当前case子句后面的所有的case子句,包括*所对应的子句,执行esac子句后面的其他语句。
iv case语句结构以esac结尾。
4. 计算运算表达式
#!/bin/bash result=`expr 2 - 100` echo "$result" result=`expr 2 \* 100` echo "$result" result=`expr \( 2 - 6 \) \* 2` echo "$result"
#!/bin/bash result=$((3+6)) echo "$result" result=$((3*6)) echo "$result"
#!/bin/bash n=10 let n=n+1 echo "$n" let n=n*10 echo "$n"
5. 位运算符
运算符 | 说明 | 举例 |
<< | 左移 | 4<<2,将4左移2位,结果为16 |
>> | 右移 | 8>>2,将8右移2位,结果为2 |
& | 按位与 | 8&&4,将8和4进行按位与运算,结果为0 |
| | 按位或 | 8|4,将8和4进行按位或运算,结果为12 |
~ | 按位非 | ~8,将8进行按位非运算,结果为-9 |
^ | 按位异或 | 10^6,将10和6进行按二进制位异或运算,结果为12 |
更新中。。。。。
标签:ade 之间 结构 文件 返回 算术运算 tty 大小 匹配
原文地址:http://www.cnblogs.com/Alysa-lrr/p/6027606.html