我正在执行一个位于/ app / fao ....的名为abs.ksh的ksh脚本,该脚本连接到服务器, 但服务器正在接收名为“ksh”的脚本,该脚本存在于/ usr / bin中... 我没有在abs.ksh中调用任何名为ksh的脚本(抱歉无法粘贴代码)。
只有在脚本以调试模式运行时才会发生这种情况。 在非调试模式下,它可以正常工作。
任何人都可以给我一些暗示这里可能发生的事情。
答案 0 :(得分: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?