shell使用总结(不断补充中...)

shell中多行注释方法

1)<< xxx…xxx注释掉两个xxx之间的代码

有效代码段
<< MARK
需要注释掉的代码段
MARK
有效的代码段

这里<<和MARK之间没有空格,这样在两个MARK之间的代码段将不再执行。
另外shell中<<好像有特别的用途,求解?—> 参考这篇文章中的”shell文档化输入”

2)巧妙的条件判断
要注释大段的代码的目的通常可能是对一个功能块进行注释,更合理的 方法推荐用条件判断方式,这样代码更清晰易读

part1=NO
有效代码段
if [ part1 == “YES”]
then
可能会注释掉的代码
fi
有效代码段

这种方法的好处是,比如在上千行代码中寻找特定的MARK块是痛苦而且低效的,此时,如果在文件的开头预置几个这样的变量,从而在文件开头修改一下变量值就可以达到目的。

3)将一个很多行的shell文件按照功能模块化

以上摘自:http://blog.sina.com.cn/s/blog_7e9efc570101apww.html


shell文档化输入

这种标记也可以作为文档化输入

<<MARK
...
MARK

例子1,其中hello world和you are winner就作为cat的输入了

cat <<HELP
hello world
you are winner
HELP

例子2,shell脚本执行输入fdisk的一些参数

sudo fdisk /dev/sdb <<EOF
d
n



+200M
n




w
EOF

shell读取文件数据

shell读取文件一行

while read myline
do
    echo "LINE:"$myline
done < datafile.txt

cat datafile.txt | while read myline
do
    echo "LINE:"$myline
done

shell读取文件中的变量

while read paraa parab parac
do
    echo "PARAA:"$paraa
    echo "PARAB:"$parab
    echo "PARAC:"$parac
done < datafile.txt

cat datafile.txt | while read paraa parab parac
do
    echo "PARAA:"$paraa
    echo "PARAB:"$parab
    echo "PARAC:"$parac
done

sleep usleep

在linux shell脚本中经常需要做一些延迟,所以会用到sleep和usleep
sleep默认以秒为单位
usleep默认以微妙为单位
sleep不但可以用秒为单位,还可以制定延迟的单位
sleep 1s 表示延迟1 second
sleep 1m 表示延迟1 minute
sleep 1h 表示延迟1 hour
sleep 1d 表示延迟1 day


set

set +x shell脚本中的命令执行结果不为0,立刻退出。
set -x shell脚本中的命令执行结果不为0,不退出,继续执行。


小数计算

小数加减

a=3.2
b=1.5
c=`echo "$a + $b" | bc`

小数比较

if [ `echo "1.0 > 2.0" | bc` == 1]


数组

申明关联数组

declare -A cpu_usage_list
cpu_usage_list=([root]=0 [lei]=0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luckywang1103

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值