从Solaris KornShell运行.ksh脚本
我已经开发了几个KornShell(ksh)脚本来在Solaris上运行。我在油灰上运行脚本。在一台服务器上,我可以按如下方式运行它们:从Solaris KornShell运行.ksh脚本,shell,unix,solaris,ksh,Shell,Unix,Solaris,Ksh,我已经开发了几个KornShell(ksh)脚本来在Solaris上运行。我在油灰上运行脚本。在一台服务器上,我可以按如下方式运行它们: $ script.ksh $ ./script.ksh 在另一个服务器上,我需要按如下方式运行它们: $ script.ksh $ ./script.ksh 否则我会得到一个script.ksh not found错误。什么会导致这种差异?我从这个脚本中调用脚本,并且不希望为了让脚本工作而必须更改所有脚本以将“/”附加到每个脚本调用中 这两台服务器都u
$ script.ksh
$ ./script.ksh
在另一个服务器上,我需要按如下方式运行它们:
$ 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=“$PATH:。”
添加到主脚本。检查两台机器上$PATH变量的差异,您会找到答案。比较两个路径后,看起来有效的路径中有/opt/OV/bin,而另一个没有。我认为这是HP Open View bin,因此不确定这是否会影响运行单独的脚本。不,它似乎不会。但再次查看后,有两个路径值由两个冒号表示,而不是1。“/path1::/path2”无效的$PATH不包含一个路径。我知道您要在路径中添加“.”,因此我将尝试将其导出到路径中。在您的控制脚本中,我将添加path=“$path:。”
,而不是依赖调用脚本的用户在路径中包含“.”。在$path中有一个空字段(即,两个相邻的:
)指当前目录。这确实可以解释这种差异。