【问题标题】:Running .ksh Scripts from Solaris KornShell从 Solaris KornShell 运行 .ksh 脚本
【发布时间】:2012-04-24 18:36:52
【问题描述】:

我开发了一些在 Solaris 上运行的 KornShell (ksh) 脚本。我通过 Putty 运行脚本。在一台服务器上,我可以按如下方式运行它们:

$ script.ksh

另一方面,服务器,我需要按如下方式运行它们:

$ ./script.ksh

否则我会收到 script.ksh not found 错误。什么会导致这种差异?我从该脚本中调用脚本,并且不想更改所有脚本以将“./”附加到每个脚本调用以使脚本正常工作。

两台服务器 uname -a 报告如下:

$ uname -a = SunOS servername 5.10 Generic_147440-10 sun4u sparc SUNW,Sun-Fire-V245
$ echo $SHELL = /bin/ksh

【问题讨论】:

  • 检查两台机器上 $PATH 变量的差异,你就会发现。
  • 比较两个路径后,看起来有效的路径中有/opt/OV/bin,而另一个没有。我相信这是 HP Open View bin,所以不确定是否/为什么会影响运行单独的脚本。
  • 不,似乎没有。但是再看一遍,两个冒号隔开的路径值是两个,而不是1。 "/path1::/path2" 不起作用的$PATH不包含一个。我知道你把“。”放在哪里。在路径中,所以我将尝试将其导出到路径中。
  • 在您的控制脚本中,我会添加PATH="$PATH:.",而不是依赖调用具有“。”的脚本的用户。在 PATH 中。
  • $PATH 中的一个空字段(即两个相邻的:)指的是当前目录。这确实可以解释差异。

标签: shell unix solaris ksh


【解决方案1】:

PATH="$PATH:." 添加到主脚本中。

【讨论】:

    猜你喜欢
    • 2012-11-03
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 2013-05-20
    • 2011-07-03
    • 2011-05-31
    • 2018-12-28
    • 2010-10-06
    相关资源
    最近更新 更多