我在服务器A上管理大量shell(ksh)脚本。每个脚本都以行...
开头#!/usr/bin/ksh
当我部署到机器B,C和D时,我经常需要使用不同的shell,例如/ bin / ksh,/ usr / local / bin / ksh甚至/ usr / dt / bin / ksh。假设我无法安装新版本的ksh,我无法在任何受保护的目录中创建链接,例如/ usr / local / bin。目前我有一个sed脚本修改了所有脚本,但我不想这样做。我想标准化标题,以便不再需要从服务器更改为服务器。我不介意使用像
这样的东西#!~/ksh
创建一个在每个服务器上的链接,但是在使用rsh(可能是ssh)来调用脚本时,我在使用“〜”查找home时遇到了问题(我特意认为是AIX)。另一种选择可能是在我的主目录中创建一个链接并确保它在我的PATH中是第一个,并且只是使用
#!ksh
寻找一个好的解决方案。感谢。
更新8/26/11 - 这是我提出的解决方案。安装脚本查找服务器上安装的各种版本的ksh,然后将其中一个ksh 93程序复制到/ tmp / ksh93。框架中的脚本都是指#!/ tmp / ksh93,它们不需要从一台服务器更改为另一台服务器。该脚本还设置了一些变量,以便如果每次从/ tmp中删除该文件,它将在下次计划任务运行时立即返回,这至少是每分钟一次。
答案 0 :(得分:2)
答案 1 :(得分:0)
#! /usr/bin/env ksh
将使用用户路径中的任何ksh。