在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4256|回复: 8

[求助] shell命令求解释

[复制链接]
发表于 2016-2-23 17:05:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 izhouhai 于 2016-2-23 17:06 编辑

我在学习dc的时候,看到shell脚本里有这么一句话:




  1. cmd=`echo $0 | sed -e 's#^\./##'`


复制代码


一下子就蒙了,求大神指导,尤其是后面的单引号里的sed cmd: 's#^\./##'
Orz....
发表于 2016-3-6 17:13:40 | 显示全部楼层
回复 1# izhouhai cmd=`echo $0 | sed -e 's#^\./##'`
将变量$0进行文本处理:行首点斜杠(./)删除
然后再付给cmd

比如 $0 = ./abc

cmd = abc
 楼主| 发表于 2016-3-7 16:29:17 | 显示全部楼层
本帖最后由 izhouhai 于 2016-3-7 16:31 编辑

回复 2# eagle654321

你好,后面这部分's#^\./##'是正则表达式吗?感觉不像正常的正则表达式...
我只知道^\./这个是查找开头的./    但是这里面的s(应该是替换的意思,有点像vim的替换命令),#以及##是什么意思


发表于 2016-4-19 14:48:20 | 显示全部楼层
回复 3# izhouhai

's#^\./##'
s/pattern1/pattern2/:Substitute pattern2 for first instance of pattern1 in a line

"/"可以用其他分隔符代替,比如这里的#,在你的例子中没有pattern2,说明在$0中找到pattern1并删除。
发表于 2016-4-19 14:54:01 | 显示全部楼层
回复 3# izhouhai


sed operator:
s/pattern1/pattern2/: Substitute pattern2 for first instance of pattern1 in a line

's#^\./##'
"#"代替分隔符”/“,没有pattern2,说明在$0中找到pattern1将其删除。
发表于 2016-5-4 10:04:54 | 显示全部楼层
ok,解释的很详细,多谢~
发表于 2018-1-19 01:37:37 | 显示全部楼层
學習了
发表于 2018-7-9 19:18:54 | 显示全部楼层
来学习一下
发表于 2018-8-6 00:43:07 | 显示全部楼层
原来/可以用#代替,怪不得看不懂
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-22 20:55 , Processed in 0.019872 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表