一、实践证明,在AIX上用的是ksh,linux上是bash

sh或bsh,全名是bourne shell。它最早出现,是标准shell。后两者都兼容它。
ksh和bash后续加入了历史记录,交互特性,数组,等新功能。
ksh在unix上使用较多。比如hpux,AIX
bash在linux上使用较多。

也可以用这些做命令跳到另一个shell,看个人习惯用哪个:
jimmy-cao@jimmycao-ThinkPad-Edge:~$ sh
$ bash
jimmy-cao@jimmycao-ThinkPad-Edge:~$ ksh
$

bash可以使用tab键补全,ksh貌似不能

二、使用上的具体区别,转的

(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反复计算

转载于:https://www.cnblogs.com/zmlctt/p/3721022.html

ksh和bash区别相关推荐

  1. ksh和bash区别、linux更改用户的默认登陆shell

    文章目录 ksh和bash区别 bash ksh linux更改用户的默认登陆shell 参考 ksh和bash区别 ksh在unix上使用较多.比如hpux,AIX. bash在linux上使用较多 ...

  2. zsh与bash区别

    zsh与bash区别 1. 两者之间比较 2. 配置zsh 1. 两者之间比较 zsh越来越受更多人欢迎,号称"终极shell",所以想去了解下它的过人之处,总之,从一个交互式终端 ...

  3. ubuntu中bash,sh,./,bash区别

    当我们使用 sh test.sh .bash test.sh . ./test.sh 运行脚本都会使用一个新的shell环境来执行脚本内的命令, 当子进程完成后,子进程内的各项变量和操作将会结束而不会 ...

  4. ksh和bash接受用户输入数据

    shell提示用户输入,并接受用户输入数据: #接收用户输入数据 read data #一般情况 (提示信息和输入不在同一行) echo "请输入数据:" read data ec ...

  5. linux基础:shell中的sh与bash区别与常用命令

    目录 一,什么是sh和bash? 二,shell的基本用法 2.1,变量 2.2,算术运算 2.3,使用 bash 计算器在shell脚本中进行浮点运算 2.4,shell中的条件判断命令test和[ ...

  6. linux -ksh,Linux Shell - bash ksh

    我知道shell有好多种.例如:TCSH SHELL . BASH SHELL 等. 请问共有几种shell,他们都有什么区别? 我的系统是RH9,用的是什么shell/ 谢谢! 目前流行的Shell ...

  7. Linux + Shell bash / sh / ksh / csh / tcsh

    Redhat Gnome Terminal 快捷键 http://huangchao200701.javaeye.com/blog/263002 常用 win+n切换背景颜色风格 alt+tab=不用 ...

  8. Linux学习笔记8——bash基本概念

    一个操作系统的组成中,shell是与用户最接近的部分 shell:外壳,也是一种程序 GUI:Gnome,KDE,Xface CLI:sh,csh,ksh,bash,tcsh,zsh Linux中大多 ...

  9. Zsh vs. Bash不完全对比解析,zsh是一种更强大的被成为“终极”的Shell

    https://www.zhihu.com/question/21418449 Mort | Zsh vs. Bash:不完全对比解析(1) 2014-10-07  bdpqlxz Zsh和Bash, ...

最新文章

  1. CS专业读PhD是否有意义?附CS奖学金项目清单
  2. 位置信息网 http://www.LocationInfo.net
  3. ElementUI中的el-select中多选回显数据后没法重新选择和更改
  4. php 返回object,深入分析使用mysql_fetch_object()以对象的形式返回查询结果
  5. 人工智能的炒作_人工智能与网络安全结合从炒作走向现实
  6. Android开发之ListView中Adapter的优化
  7. 【DIY】通达信DIY添加扫雷宝、地图和复盘(1)
  8. 自建KMS激活服务器
  9. 一道智商测试题 月薪三万
  10. 计算机等级考试:IE地址栏不见了 怎么让消失了的IE地址栏神奇的再次出现。?
  11. 厦大1394 抛硬币
  12. 那个职员建议他们去计算机博物馆英语,新目标英语九年级Unit 3 Section B录音(音频+文本+翻译)...
  13. 可以检测手机帧率和温度的软件_拯救者电竞手机Pro评测:不只是一台手机,更是游戏主机...
  14. C++String fing函数
  15. opencv中人脸识别算法的基本原理
  16. Tensorflow2.0+Anaconda + Windows10+cuda10.0+python3.7+spyder安装教程
  17. 图像滤镜艺术---最新美颜算法研究
  18. 不使用strlen函数求字符串的长度的方法
  19. camera 驱动 GT2005
  20. android+手机管家,腾讯手机管家—QQ微信保护

热门文章

  1. Excel电子表格提取word文档信息|Word魔方
  2. 构建项目//pc端、移动端H5
  3. 使用事件查看器进行windows补丁安装状态确认
  4. 苏嵌实训——day19
  5. 【已解决】ElementUI自定义样式生效过慢的问题
  6. 简易单片机-电子定时闹钟程序设计笔记 长按按钮-定时器 蜂鸣器 LED
  7. 混合模式之二:变暗组
  8. 微信h5自定义分享,加缩略图等
  9. 期货平台搭建 期货系统软件源码开发贵不贵
  10. 常见肝脏检查项目的选择,项目一览表