2012-06-02 71 views
6

我正在運行一個bash腳本,並且我想在執行腳本後用一些命令預先填充命令行。唯一的條件是該腳本當時不能運行。如何預先填充命令行輸入

我需要的是......

  1. 運行腳本
  2. 後的劇本已經停止

它甚至有可能在我的命令行已預先填寫的文字?所有我試圖模擬一個bash腳本使用

read -e -i "$comm" -p "[[email protected]$HOSTNAME $PWD]$ " input 
command $input 

但我正在尋找更直接的東西。

回答

9

您需要使用TIOCSTI ioctl。這裏有一個例子C程序,顯示它是如何工作:

#include <sys/ioctl.h> 

main() 
{ 
    char buf[] = "date"; 
    int i; 
    for (i = 0; i < sizeof buf - 1; i++) 
     ioctl(0, TIOCSTI, &buf[i]); 
    return 0; 
} 

這個編譯並運行它,「日期」將被緩衝作爲標準輸入的輸入,你的shell會在程序退出後閱讀。您可以將其轉換爲一個命令,讓您將任何內容填充到輸入流中,然後在bash腳本中使用該命令。

相關問題