bash 脚本学习笔记

通常在/etc目录下面有大量的脚本文件,随时可以参考、学习

1、搜索含有某个指令的脚本:find /etc 2>/dev/null | xargs grep 'awk ' 2>/dev/null

  • 说明:
  • find /etc 查找/etc 目录下的所有文件,并显示文件名
  • 2>/dev/null 把所有的错误信息,如权限错误,不能访问等等 重定向倒看不到的虚拟设备,只显示有用信息。(1代表“标准输出”,2代表“标准错误输出”)
  • | 把前一个命令的输出以管道的方式传给后面的命令
  • xargs 对输入的每一个参数,循环执行后面的命令
  • grep 'awk' 在指定文件中查找字符串,这里的输入文件时xargs命令传过来的,每次去一个find输出的文件名

2、正则替换sed:

  • sed -i 's/regExp1/replaceExp/g' file     -i 代表直接替换文件中的内容    前面的s代表搜索替换,后面的g代表替换所有,三个 / 可以用任意字符替换,比如 sed 's@regExp1@replaceExp@g' file 或 sed 's#regExp1#replaceExp#g' file ,即使不要后面的g(只替换第一个找到的内容),最后一个特殊符号也不能省掉。
  • 在替换表达式中可以使用 /1 这样的特殊参数来替代前面正则表达式中匹配的部分内容,例如:sed -n 's/.*/(movie_Play.asp?Id=[0-9]/+/).*/http:www.kankan.com///1/p'   这里最后一个p把内容显示到屏幕上
  • 进行多次处理,以简化表达式:grep "Id=[0-9]/+.*img" movie_list.htm | sed -n 's/.*/(movie_Play.asp?Id=[0-9]/+/).*/http:www.kankan.com///1/p'
  • 还有awk cut 等命令可以完成相似的功能,参见/etc 下的相应代码 以及 info awk , info cut

3、bash 脚本中的 流程控制:

if [[ ! -d /var/run/nscd ]] ; then
    mkdir -p /var/run/nscd
    chmod 755 /var/run/nscd
fi

for entry in $entries ; do
    echo $entry
done

case $entry in
    nisplus*)
        echo "case nisplus"
    *)
        echo "default"
;;
esac

注意case语句中倒数第二行的两个分号是必需的
4、查看命令的位置,察看文件的类型
  • which which   察看命令文件的位置,这个是一个单独的文件
  • type type   察看命令文件的位置,这个是bash内置命令
  • file /dev/null   察看文件的格式信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值