免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8540 | 回复: 10
打印 上一主题 下一主题

[故障求助] 问一个aix下shell脚本问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-08 10:04 |只看该作者 |倒序浏览
各位好:

    我目前使用的是5300-05-00版本,下面一段shell总是有问题,请各位帮忙看看


#!/bin/ksh
errnum=`awk '{print $1}' /home/oracle/errlg.txt`
echo $errnum
if [ -n $errnum ]; then
echo "hello!!!"
fi

报错2.sh[4]: test: 0403-004 Specify a parameter with this command.
这个文件为空或者不为空都报错,我是想判断如果这个文件取出的值不为空情况下,需要我操作东西(aix中if不为空是不是用-n表示,linux是可以通过这个代码的)

论坛徽章:
0
2 [报告]
发表于 2010-09-08 10:42 |只看该作者
使用下面的例子吧,如果你不能把你自己的代码搞定:

#Begin Code
PASSWORD_FILE="/etc/passwd"

ls –l $PASSWORD_FILE > /dev/null 2>&1
if [[ $? != 0 ]]; then

       print “$PASSWORD_FILE was not found"
       exit

else
   
   for username in $(cat $PASSWORD_FILE | cut -f1 -d
   do

       print $username

   done         
fi

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
3 [报告]
发表于 2010-09-08 10:52 |只看该作者
文件为空的时候,是会报这个错误的
要是文件没问题,报这个错误就难理解了

至于-n的用法问题,你不会man test么

论坛徽章:
0
4 [报告]
发表于 2010-09-08 11:35 |只看该作者
谢谢两位答复,我刚吃man test了一下:

-n String1
            Returns a True exit value if the length of the String1 variable is
            nonzero.
这个-n应该是返回的string的长度为非0则为true,我那么写应该没问题,但是总是报那个错,
我其实就是要用if判断取得值不为空then。。。。

我昨天给ibm800打电话,他们的support竟然告诉我说这是个bug?
我觉得他们说的有问题,所以才到论坛上来问。。
还请有aix shell经验多的朋友帮忙解决一下,多谢了

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2010-09-08 11:54 |只看该作者
告诉你的是bug,就没说补丁吗?

你的目的是啥,文件非空,就是有错误,文件为空,就是没错误呗,是这个逻辑呗?

论坛徽章:
0
6 [报告]
发表于 2010-09-08 11:56 |只看该作者
另外,这位大哥提供的脚本好像也有点问题(本人shell不熟)

#!/bin/ksh
PASSWORD_FILE="/etc/passwd"
echo $PASSWORD_FILE
ls -l $PASSWORD_FILE > /dev/null 2>&1
if [[ $? != 0 ]]; then
       print "$PASSWORD_FILE was not found"
       exit
else
     for username in $(cat $PASSWORD_FILE) | cut -f1 -d
   do
       print $username
   done
fi

执行报错:3.sh[5]: 0403-057 Syntax error at line 9 : `|' is not expected.

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2010-09-08 11:58 |只看该作者
另外,这位大哥提供的脚本好像也有点问题(本人shell不熟)

#!/bin/ksh
PASSWORD_FILE="/etc/passwd"
...
sophialily 发表于 2010-09-08 11:56


有几个字符被表情替代了

论坛徽章:
0
8 [报告]
发表于 2010-09-08 11:58 |只看该作者
回复5楼:

告诉你的是bug,就没说补丁吗? ---- IBM让升级版本到53-08以后,这太麻烦了,我是生产机,

你的目的是啥,文件非空,就是有错误,文件为空,就是没错误呗,是这个逻辑呗?----是这个逻辑,如果文件为非空,表示错误,文件为空是正常

论坛徽章:
0
9 [报告]
发表于 2010-09-08 12:00 |只看该作者
回7楼:

   那个符号我已经改了,问题不在那,在cut前面的管道符那,还得帮忙调一下,另外看看各位有没有更简单的方法实现当文件中为非空表示错误,为空表示正常的逻辑的shell脚本

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
10 [报告]
发表于 2010-09-08 12:04 |只看该作者
回7楼:

   那个符号我已经改了,问题不在那,在cut前面的管道符那,还得帮忙调一下,另外看看各位有没有 ...
sophialily 发表于 2010-09-08 12:00



for username in $(cat $PASSWORD_FILE | cut -f1 -d ":")
正确是这么写的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP