2013-04-15 97 views
0

我能夠從由Windows環境中的java程序中使用的JSch庫創建的非交互式shell運行linux服務器上的TCL腳本。問題是我有一些腳本需要在腳本的執行過程中根據腳本的中間輸出傳遞某些參數,並且在輸入參數之後,腳本從此處繼續執行。但由於它是非交互式shell,因此我無法在執行期間傳遞此參數。有什麼方法可以讓它工作?我想到了一個選項,我會將參數作爲命令行參數傳遞,但想知道其他方式。從非交互式shell向TCL腳本傳遞執行時間參數

回答

0

當你說「參數」,你的意思是用戶將在互動會議已輸入的輸入提示腳本所呈現的東西嗎?

如果是的話,有兩種可能性:

  • 如果腳本並不指望會議是互動的,並從標準輸入流只是讀取輸入(使用gets例如),然後只給此輸入爲解釋您的腳本的tclsh過程的標準輸入。
  • 如果腳本確實希望會話是交互式的(並拒絕接受來自其輸入流的數據),則必須爲目標進程分配一個僞TTY。

    我不熟悉JSch,但this似乎是一個問題(和答案)處理JSch分配一個PTY。

+0

是的,參數意味着用戶在交互式shell中輸入的內容。由於腳本期望會話是交互式的,我將嘗試探索使用JSch的僞TTY選項。謝謝。 :) 將很快發佈結果。 – Peeyushpd