2012-05-22 158 views
0

假設您有一個終端(T1)以6350 pid打開。從另一個終端發送命令到終端

類型:

echo "ls\n" > /proc/6350/fd/0 (writen in another terminal (T2)). 

此寫入LS和行跳T1但不執行呢?爲什麼?

我也使用

cat|bash with echo "ls\n" > /proc/catPID/fd/0 

嘗試,但仍然沒有執行它。

有什麼想法?

感謝,

編輯:

一個可能的絕招:

mkfifo toto 

$bash < toto 

$echo "ls" > toto 
+0

沒有「\ n」? 'echo「ls」>/proc/6350/fd/0' – MirkoBanchi

+0

它只是打印ls。 – rvlander

回答

1

首先,如果你想echo到intpret的\n作爲換行符你有-e調用它。

其次,你想要(劫持一個終端)不是(容易)可行的,見unix.stackexchange。我會在兩個會話中使用screen(其中一個使用-x選項)。

+0

沒有選項的'echo' -n'附加一個'\ n'到arg。 – MirkoBanchi

+0

我嘗試了所有這些組合。 – rvlander

+1

@rvlander:帶回聲的提示只是如何輸出\ n以防萬一你想輸出它(因爲MirkoBanchi已經提到過它不是必要的,因爲回聲已經自己輸出)。你的問題是你想「劫持」這些不可行的客戶。 – flolo