AIX SHELL和linux shell本质上有什么区别?

参与7

2同行回答

宋代超人宋代超人系统运维工程师东航期货
也是从别处转载的:1) 在ksh是,数组的index只能从0到1023,而bash中没有这样的限制。(2) ksh与bash初始化数组的语法不同:如下所示icymoon# kshicymoon# set -A array 1 2 3 4 5; echo ${array[3]};4icymoon# bashicymoon# array=(1 2 3 4 5); echo ${array[3]};4icymoon# arra...显示全部

也是从别处转载的:

1) 在ksh是,数组的index只能从0到1023,而bash中没有这样的限制。

(2) ksh与bash初始化数组的语法不同:

如下所示

icymoon# ksh

icymoon# set -A array 1 2 3 4 5; echo ${array[3]};

4

icymoon# bash

icymoon# array=(1 2 3 4 5); echo ${array[3]};

4

icymoon# array=([0]=1 [3]=2 [2]=3); echo ${array[3]}

2

1. 内置read命令

read VARIABLE?\\ \"xxxxxxxxxxxxxx\"

2. 反义循环

until [[ ... ]] #这里的[[ ]]是ksh的括号,比sh的[]括号,[[]]能够支持更多,更强大的命令行选项

do

   xxxxxxx

done

2. 字符串的操作

我们有basename取出文件名,但是如果需要得到目录名呢?

FULLPATH=`pwd`/$0

DIR=${FULLPATH%${FILENAME}}#从变量FULLPATH的最后开始,搜索第一个FILENAME的匹配,并删除

              %%                               后面        最后一个

              #                                前面        第一个

              ##                               后面        最后一个

DIR=${DIR%\\/}              #去掉反斜杠

basename=$(filename%%.cpp) #去掉文件名的.cpp后缀

3. 布尔操作

sh的布尔操作是-a -o,ksh可以 if [[ test1 && test2 ]]就像C语言的逻辑操作一样

4. 把一个字符串拆成一个数组,元素之间是以空格或tab分隔

set -A Array $input

if [[ -z ${Array[0]} ]]echo\"空的数组\"

取数组下标和C语言类似,当然必须用${}包含

5. for数据(sh兼容)

for file in $inputfiles

do

  cat $file|tr \'[A-Z]\' \'[a-z]\'|sed -e \'/^$/d\' -e \'/^#/d\'

#所有字符变成小写,并删除空行和注释行(\'#\'开头)

done

6. 寻找新的文件 NEWER=`find $CLASSFILE -newer $JAVAFILE`

  

7. 直接数学计算

$ let x=0

$ let x=x+2

不需要使用expr反复计算

收起
金融其它 · 2017-02-07
浏览9883
wuxianyuwuxianyu系统运维工程师华胜信泰信息产业发展有限公司
AIX shell 是Korn ShellLinux 是bash shell 格式个别不一样吧显示全部

AIX shell 是Korn Shell

Linux 是bash shell 格式个别不一样吧

收起
系统集成 · 2017-02-04
浏览9694

提问者

科比之圣
系统工程师北京银信

相关问题

相关资料

问题状态

  • 发布时间:2017-02-04
  • 关注会员:4 人
  • 问题浏览:11170
  • 最近回答:2017-02-07
  • X社区推广