2011-01-20 128 views
0

我正在執行名爲abs.ksh的位於/ app/fao的ksh腳本,它連接到服務器, 但服務器正在接收名爲「 ksh「,它存在於/ usr/bin中... 我沒有在abs.ksh中調用任何叫做ksh的腳本(抱歉無法粘貼代碼)。Ksh腳本自動調用/ usr/bin中的另一個腳本

只有當腳本在調試模式下運行時,也會發生這種情況。 在非調試模式下,它工作正常。

任何人都可以給我一些可能發生在這裏的暗示。

+0

運行Korn shell腳本需要運行ksh的一個實例。你能夠在調試和非調試模式下準確顯示你如何調用腳本嗎?你有什麼,如果有的話,你有在你的abs.ksh腳本的第一行? – 2011-01-20 09:53:45

回答

1

在標準的「經典」Unix環境中,可能會有多個shell。例如。 'sh'原始的Bourne shell,'ksh' - Korn shell,csh - C shell,bash,tcsh等等。用戶登錄將在每次登錄時設置默認shell集。

#!在可執行腳本的開始處是一條解釋&的指令,後面的文本以'#!'後面的程序名稱運行。

E.g.用perl運行這個

#!/bin/perl 

<.. perl stuff ..> 

所以是#!/ usr/bin/ksh - 將在該位置運行帶有命令解釋器(shell)的腳本。

需要更多信息。關於如何在調試模式下運行。即你是在輸入'ksh -x ...'還是'sh -x' - 如果是的話,你的搜索路徑是哪裏?例如。 'whence ksh' - 也許你在調試模式下運行了不同的shell。

另外這是什麼os?

相關問題