六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 96|回复: 0

各种Unix环境对ksh的影响(1)

[复制链接]

升级  88%

10

主题

10

主题

10

主题

童生

Rank: 1

积分
44
 楼主| 发表于 2013-1-19 04:16:01 | 显示全部楼层 |阅读模式
(1)IBM对$0的支持:
IBM机器不支持函数中使用$0代替函数名,它的$0总是代表sh文件的名字,所以不能使用$0来代表函数名.
(2)SUN对awk的支持:
awk的-v可以将shell中的变量传入到awk内部变量,但是SUN的awk不一定支持这个语法,如果要确保支持本语法,可以使用
/usr/xpg4/bin/awk -v key="$key_name" -v value="$svalue"
要注意两点:1.路径   2.-v和变量之间有空格(普通awk没有空格)
(3)SUN对grep的支持:
grep –E 的扩展支持在SUN下必须使用:
/usr/xpg4/bin/grep -E 'Archive| [0-9][0-9]:[0-9][0-9]:[0-9][0-9] '

(4)~的使用
一般使用~iinscu即可得到iinscu的home目录.但是当把iinscu保存在变量中时,如 user_name=”iinscu”, 无法使用 ~$user_name得到iinscu的home路径.可以使用:
eval “home=~$user_name”
或者使用$user_name在/etc/passwd中查找:
home=`cat /etc/passwd | grep “^${user_name}:” | awk ‘{print $6 }’`
(5)su 某个用户并执行某个sh,输出到/dev/null中.
如 su – informix –c “ls  -l >/dev/null 2>&1 “ >/dev/null 2>&1
在sh,csh下会出错,需要指定为ksh
su – infomix –c “ ksh =-c \” ls –l >/dev/null 2>&1 \” “>/dev/null 2>&1
在csh下可能会提示你 “不匹配, 需要将当前sh改成ksh.脚本中需要指定为ksh.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表