我有两台服务器,其中一台AIX的默认外壳程序为ksh,另一台RHEL的默认外壳程序为bash。
我有一个安装在这两个脚本上的脚本,它们将运行类似的命令,但适用于AIX或Linux。该脚本在bash服务器上不起作用,有没有办法使该脚本在bash和ksh上运行,还是最好的选择是创建两个不同的脚本?
#!/usr/bin/ksh
export OS=`uname -s`
echo "OS is "$OS"."
case $OS in
"AIX")
#run AIX commands;;
"Linux")
#run Linux commands;;
"*")
echo "Exiting. The OS type is not found.";;
esac
echo "Done."
exit 0
更新
我需要运行的命令是针对每个服务器上的用户帐户的。解锁帐户的示例。AIX / usr / bin / chuser account_locked = false $ USERNAME
Linux / usr / bin / passwd -u $ USERNAME
通过进一步的调查,我发现AIX中的shell位置位于/ usr / bin / sh,而Redhat的位于/ bin / sh。
我可以根据“ uname”的结果来定义shebang吗?
拥有两个单独的脚本版本可能会更容易。由于它很短,因此不值得添加额外的代码来处理两种格式之间的差异,如jw013所建议的那样。另一方面,如果您有一个较大的脚本,则可能更容易拥有一个脚本,并根据从何处运行脚本来执行不同的命令。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句