您尚未登录。

#1 2014-12-25 10:38:03

atmouse
会员
注册时间: 2011-08-24
帖子: 701

大家都来shell问题

我想知道,
比如
echo "dummy" >/tmp/a.txt
这样的一个命令, 我用strace 看到调用了 /bin/echo ,比如这样的功能,bash貌似有内置echo吧, 网上查了下 用builtin,那么如果没有内置echo的,有啥好办法

2.
rm -f /tmp/a.txt
这个命令,同样需要调用 rm命令,有啥办法不用rm而删除这个文件呢, (不能调用其它命令,必须bash内置的方法)

最近编辑记录 atmouse (2014-12-30 13:29:17)

离线

#2 2014-12-25 10:43:02

atmouse
会员
注册时间: 2011-08-24
帖子: 701

Re: 大家都来shell问题

貌似都有builtin, 那么还有, 如果可以用内置,我加一个builtin ,会有啥兼容问题不

离线

#3 2014-12-25 12:20:24

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,954
个人网站

Re: 大家都来shell问题

一般内置的命令都是兼容 POSIX 标准的,所以通常在需要兼容性的时候是不会有问题的。(echo 是个例外。)

zmodload zsh/files
然后就有 rm 这个 builtin 了=w=

不用 rm 的办法很多啊,调用各种脚本语言就可以。参见 chmod -x /bin/chmod执行上述命令后,如何恢复? - 知乎

离线

#4 2014-12-25 12:53:27

atmouse
会员
注册时间: 2011-08-24
帖子: 701

Re: 大家都来shell问题

2 。 不要另外再开进程的

离线

#5 2014-12-25 13:53:20

atmouse
会员
注册时间: 2011-08-24
帖子: 701

Re: 大家都来shell问题

2。 通用的

离线

#6 2014-12-25 18:06:04

zsrkmyn
lazy...
注册时间: 2013-05-05
帖子: 331

Re: 大家都来shell问题

1. 直接执行 echo "dummy" >/tmp/a.txt 的时候似乎是用的 builtin 的 echo ,用 strace 执行的 echo 是 /usr/bin/echo 。
2. 好简单哒, mv/cp  b a.txt && mv a.txt b ,b 代表任意其他文件。或者 mv 到 /tmp /proc /sys 之类的然后重启?

还是觉仙子的知乎里面那个‘编译一一个 Hello World 再 cat /usr/bin/chmod > a.out’比较叼。

离线

#7 2014-12-25 18:54:52

atmouse
会员
注册时间: 2011-08-24
帖子: 701

Re: 大家都来shell问题

不想再执行一个进程啊比如有内置方法, 不然我直接rm不就行了,没必要问了。

我想过比如
:> 清空一个文件,但是没有删除

最近编辑记录 atmouse (2014-12-25 18:55:37)

离线

#8 2014-12-30 12:56:07

吴三爱酒
会员
注册时间: 2014-12-30
帖子: 1

Re: 大家都来shell问题

丢到/dev/null

离线

#9 2014-12-30 13:29:47

atmouse
会员
注册时间: 2011-08-24
帖子: 701

Re: 大家都来shell问题

吴三爱酒 说:

丢到/dev/null

给个不用mv的 “丢到/dev/null”, 麻烦跟帖都看清楚

最近编辑记录 atmouse (2014-12-30 13:30:27)

离线

#10 2014-12-30 19:10:02

糊涂
本尊
注册时间: 2012-10-30
帖子: 203

Re: 大家都来shell问题

猫丝----算了。
算我没说

最近编辑记录 糊涂 (2014-12-30 19:11:01)


想装X,别装X

离线

页脚