Chinaunix

标题: 怎么在一个文件中分开使用bash和ksh [打印本页]

作者: 一世缥缈    时间: 2014-08-08 10:28
标题: 怎么在一个文件中分开使用bash和ksh
需要写一个在Linux HP-UP solaris都可以使用的脚本工具。

但是在linux上使用的shell是bash,在其他的上面使用的是ksh,而且linux上没有ksh。

我不想把这个脚本在分成2中不同的版本,有没有啥办法能在一个脚本里识别系统,并且调用正确的bash/ksh。

或者是在某一段用bash,在某一段用ksh呢?

作者: Shell_HAT    时间: 2014-08-08 10:38
用sh的语法编写代码,不要使用bash或ksh特定的语法。
作者: 一世缥缈    时间: 2014-08-08 10:57
回复 2# Shell_HAT



其他的都好说,关键我在脚本里面用了很多数组,但是bash和ksh的数组定义完全不一样。你说的这个sh应该怎么用呢?我刚才百度了下,网上很多都是bash的内容!

   
作者: jason680    时间: 2014-08-08 11:14
回复 1# 一世缥缈

would you like to use Perl that is easy to support Unix like platform
作者: q1208c    时间: 2014-08-08 11:38
在shell里用数组, 就是找shi的节奏.

还是用perl或python吧. 基本上shell的工作都可以做了.
变量处理上, 要灵活得多, 跨平台也比shell兼容性要好.

不过, 说linux没有ksh, 我表示不服.
  1. $ which ksh
  2. /bin/ksh

  3. $ rpm -qf /bin/ksh
  4. ksh-20120801-10.el6.x86_64
复制代码

作者: jason680    时间: 2014-08-08 11:45
@q1208c @一世缥缈

问题不在bash or ksh

而是awk, sed, cat, cut, grep, ... 版本不同,功能不一...
作者: q1208c    时间: 2014-08-08 12:34
回复 6# jason680

  我当然知道, 所以才建议用perl或python呀.
   
作者: 一世缥缈    时间: 2014-08-08 13:21
回复 5# q1208c

这还真没有!!!!

  1. # which ksh
  2. /usr/bin/which: no ksh in (/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin)
复制代码
看样子只能看先看看perl了
作者: Shell_HAT    时间: 2014-08-08 13:54
回复 3# 一世缥缈


参考:
http://blog.chinaunix.net/uid-17176286-id-4405531.html
作者: Shell_HAT    时间: 2014-08-08 13:57
回复 8# 一世缥缈


是的,并非所有的系统都有ksh




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2