您的位置:首页 > 运维架构 > Shell

shell脚本学习笔记

2017-10-31 22:40 369 查看
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
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: