免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2149 | 回复: 3
打印 上一主题 下一主题

[文本处理] 请大神解释下 一下shell 中的几句 [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-13 14:26 |只看该作者 |倒序浏览
  1. fw_init() {
  2.         [ -z "$FW_INITIALIZED" ] || return 0

  3.         . $FW_LIBDIR/config.sh

  4.         scan_interfaces
  5.         fw_config_append firewall

  6.         local hooks="core stop defaults zone notrack synflood"
  7.         local file lib hk pp
  8.         for file in $FW_LIBDIR/core_*.sh; do
  9.                 . $file
  10.                 hk=$(basename $file .sh)
  11.                 hk=${hk#core_}
  12.                 append hooks $hk
  13.         done
  14.         for file in $FW_LIBDIR/*.sh; do
  15.                 lib=$(basename $file .sh)
  16.                 lib=${lib##[0-9][0-9]_}
  17.                 case $lib in
  18.                         core*|fw|config|uci_firewall) continue ;;
  19.                 esac
  20.                 . $file
  21.                 for hk in $hooks; do
  22.                         for pp in pre post; do
  23.                                 type ${lib}_${pp}_${hk}_cb >/dev/null && {
  24.                                         append FW_CB_${pp}_${hk} ${lib}
  25.                                         append FW_HOOKS FW_CB_${pp}_${hk}
  26.                                 }
  27.                         done
  28.                 done
  29.         done

  30.         fw_callback post init

  31.         FW_INITIALIZED=1
  32.         return 0
  33. }
复制代码
特别 是这句:

hk=${hk#core_}


以及  
lib=${lib##[0-9][0-9]_}


  非常感谢

论坛徽章:
771
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
2 [报告]
发表于 2013-12-13 15:20 |只看该作者
好象是Shell十三问的内容?
特意给楼主摘抄出来了

為了完整起見,我這裡再用一些例子加以說明 ${ } 的一些特異功能:
假設我們定義了一個變量為:
file=/dir1/dir2/dir3/my.file.txt
我們可以用 ${ } 分別替換獲得不同的值:
${file#*/}:拿掉第一條 / 及其左邊的字串:dir1/dir2/dir3/my.file.txt
${file##*/}:拿掉最後一條 / 及其左邊的字串:my.file.txt
${file#*.}:拿掉第一個 .  及其左邊的字串:file.txt
${file##*.}:拿掉最後一個 .  及其左邊的字串:txt
${file%/*}:拿掉最後條 / 及其右邊的字串:/dir1/dir2/dir3
${file%%/*}:拿掉第一條 / 及其右邊的字串:(空值)
${file%.*}:拿掉最後一個 .  及其右邊的字串:/dir1/dir2/dir3/my.file
${file%%.*}:拿掉第一個 .  及其右邊的字串:/dir1/dir2/dir3/my
記憶的方法為:

    # 是去掉左邊(在鑑盤上 # 在 $ 之左邊)
    % 是去掉右邊(在鑑盤上 % 在 $ 之右邊)
    單一符號是最小匹配﹔兩個符號是最大匹配。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2013-12-13 15:29 |只看该作者
回复 2# Herowinter


    感谢。
    这些特殊符号 很难搜索, 自己看,很不容易懂

论坛徽章:
3
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:51:162015年亚洲杯之阿曼
日期:2015-04-07 20:00:59
4 [报告]
发表于 2013-12-13 17:16 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP