天道酬勤,恒者能胜。追求卓越,成功就会在不经意间追上你。

Shell编程基础概念之SHELL编程注意事项(九)

上一篇 / 下一篇  2012-12-31 12:30:25 / 精华(1) / 置顶(1) / 个人分类:Linux操作系统

坐公交,对面有个人的手机响了,“有个傻b来电话了!有个傻b来电话了!”
我们就全看他,那个彩铃接着喊“看什么看没见过这么帅的彩铃阿,傻b! ”
卧槽!全又低下了头



4.1使用不同的壳执行命令文件

1)如果Script的第一个非空白字元不是"#",则它会使用Bourne Shell

2)如果Script的第一个非空白字元是"#"时,但不以"#!"开头时,则它会使用C Shell

3)如果Script"#!"开头,则"#!"後面所写的就是所使用的Shell,而且要将整个路径名称指出来,这里建议使用第三种方式指定Shell,以确保所执行的就是所要的。Bourne Shell的路径名称为/bin/sh,而C Shell则为/bin/csh。我们一般使用ksh, 路径为/bin/ksh

 

4.2使用不同SHELL的区别

 BSH:

     设置环境变量使用export var=var_value; var=var_valu; export var

 CSH/KSH:

     设置环境变量使用setenv var var_value

 

一些KSH独有的特征:

1)KSH环境变量

HISTSIZE:历史命令数量,默认为128,可以在.chsrc中将其设置为其他值

TMOUT  :超时自动退出,用于一段时间没有键入命令,强制退出   

1) 别名

可以定义自己的标识,标识定义的命令。比如:

alias dba dbaccess $TELLIN_DBNAME

2) 支持数组变量

 

4.3 SHELL程序的返回值不能超出255,否则返回值将不确定

 

4.4 read命令将输入的多余的part给最后一个变量

>read var1 var2

aa bb cc

>echo $var1

aa

>echo $var2

bb cc

 

4.5调试

使用-x

1)SHELL程序指定执行为调试模式

#!/bin/shx

 

2)在命令行中指定调试模式执行

指定SHELLx程序名称,如:

shx update_iuser214.sh

 

4.6执行SHELL

前台执行:

>sh程序名称

>程序名称

后台执行:

>sh程序名称 &

>程序名称    &

 

4.7移植性

目前智能业务部的设备选型中,小型机从IBM/HP/SUN 3家中选择。相应我们的SHELL一般需要在AIX,HP-UX,SunOS上应当保持一致。即SHELL程序一般需要在3操作系统上进行移植。

可以使用unames确定机器的操作系统,比如:

#机器类型

OsType=`uname -s`

if [ "-$OsType" = "-SunOS" ]; then

   

elif [ "-$OsType" = "-HP-UX" ]; then

   

elif [ "-$OsType" = "-AIX" ]; then

   

else

  echo "ERROR: system not support this machine type $OsType"

  eixt 1

fi

 

大部分常见的UNIX命令在以上3中操作是一致的,但是某些命令则具有差异(ftplsHP-UXnlist)。如果碰到与操作系统相关的地方,则需要根据操作系统作相应处理。

 

 

附录:

一个SHELL编制的人机交互界面,里面使用的SHELL语法比较深入。如果能读懂或者编制同样程序,则表明你的SHELL教本功底已经足够深厚。如果不能读懂,可以挑战一下自己。

                     零测试


TAG: 零测试 BASH bash Bash echo if shell Shell 操作系统

tianbotest的个人空间 引用 删除 tianbotest   /   2014-09-18 17:58:01
开头那句话逗逼了吧,铃声和彩铃竟然同时存在一部手机?真不知道是在打电话,还是接电话?
 

评分:0

我来说两句

Open Toolbar