- echo "name 'YUYUFEN'"
- echo -n "name :";不换行
- 可以用 set命令来显示一份完整的当前环境变量列表
- 有两种方法可以将命令输出赋给变量
``
$()
- wc
q 文本的行数
q 文本的词数
q 文本的字节数
- 内联输入重定向(inline input redirection)
$wc << EOF
> test string 1
> test string 2
> test string 3
> EOF
- expr 5 * 2
- 在bash中,在将一个数学运算结果赋给某个变量时,可以用美元符和 方括号($[ operation ])将数学表达式围起来
- bc访问shell的计算器
quit退出
浮点运算是由内建变量scale控制的。必须将这个值设置为你希望在计算结果中保留的小数位数,否则无法得到期望的结果
- shell脚本中使用bc
variable=$(echo"options; expression" | bc)
var1=$(echo "scale=4; 3.44 /5" | bc),保留4位小数的浮点计算结果
- Linux提供了一个专门的变量$?来保存上个已执行命令的退出状态码。
shell中运行的每个命令都使用退出状态码(exit status)告诉shell它已经运行完毕。退出状态 码是一个0~255的整数值,在命令结束运行时由命令传给shell
- 你可以改变这种默认行为,返回自己的退出状态码。exit命令允许你在脚本结束时指定一 个退出状态码。
exit 5;
exit $var1
$ echo $? 为5
- bash shell的if语句会运行if后面的那个命令。如果该命令的退出状态码(参见第11章)是0 (该命令成功运行),位于then部分的命令就会被执行。如果该命令的退出状态码是其他值,then 部分的命令就不会被执行,bash shell会继续执行脚本中的下一个命令
10.31
- if 后面跟普通的shell命令,如果返回0,那么执行then,如果执行错误,则else
- if 对其它条件的判断,可以考虑
- test conditionj
- [ condition ],[加空格]
- 复合条件
[ condition1 ] && [ condition2 ] 两个条件都成立,执行then之后的
[ condition1 ] || [ condition2 ] 只要其中一个成立
- (( expression ))
expression可以是任意的数学赋值或比较表达式
- [[ expression ]]
双方括号里的expression使用了test命令中采用的标准字符串比较。但它提供了test命令未提供的另一个特性——模式匹配(pattern matching)。
比如:if [[ $USER == r* ]],以r开头的字符串
- case variable in
pattern1 | pattern2) commands1;; pattern3) commands2;;
*) default commands;;
esac