2011-01-20 125 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?

相关问题