回文章列表
作者vincente.bbs@ptt.cc (文生弟) 看板: linux
標題Re: [問題] redirection
時間批踢踢實業 (2008/08/21 Thu 13:27:03)
Linux shell 執行的步驟是由後到前。

當你執行 echo 123 > abc.txt 時,
shell 會先產生 abc.txt 並打開 ( open() ),
再把 123 倒進去。

如果 abc.txt 已經存在,就會把 abc.txt 的內容清掉,
呼叫 system call open() 打開 abc.txt,再把 123 倒進去。

所以當你的 sed 指令要開始處理 123_pre.c 的時候,
這個 file 已經先被清掉了。


※ 引述《typeotoco (打字男)》之銘言:
:   sed 's/include/INCLUDE/g' 123_pre.c  > 123_pre.c
:   請問一下上面這個 command 執行完後 123_pre.c 變成空檔案了
:   嗯 我印象中的確也是不能把同一個檔案當作 redirection 的 target
:   只是還蠻好奇 這個指令的執行過程或步驟是怎樣的,
:   順便請教一下 如果我要取代完放回原檔案
:   應該怎麼下正確的 command ?
:   謝謝!

--

I'm root.

--
※ 發信站: 批踢踢實業坊(ptt.cc) 
◆ From: 221.169.252.133
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻