Chinaunix

标题: [求助]关于脚本内调用命令的问题 [打印本页]

作者: TokyoLinux    时间: 2014-02-05 15:37
标题: [求助]关于脚本内调用命令的问题
本帖最后由 TokyoLinux 于 2014-02-05 15:39 编辑

大侠请帮忙呀。
先说说情况吧!
现在在做一个脚本,管理HULFT的日志。脚本中要调用HULFT自身的命令。
我在SHELL里面执行命令时候能够正常取得通信日志。
但是写到脚本里面调用后就提示找不到日志源。
我觉得可能是脚本内部命令及其参数写法出现问题。
所以肯定大家帮忙。
---------------------------------------------------------------------------------------------------------
这是我在SHELL里面执行的结果。可以正常显示通信履历。
[root@localhost bin]# ./utllist -r -from 20140101 -to 20140201

HOST NAME FILEID    START DAY   START TIME END TIME   RECORDS  STATUS   CONNECT

host1  S55N045A4  2014/01/24  01:14:24   01:14:25 5634089124 0000-0000   LAN  
host2  A02843000  2014/01/24  09:00:11   09:00:12 5634904974 0000-0000   LAN  
host3  A03269000  2014/01/24  09:15:47   09:15:48 5636596002 0000-0000   LAN  
host4  A05531000  2014/01/24  10:40:05   10:40:05 5634343111 0000-0000   LAN  
---------------------------------------------------------------------------------------------------------
然后我将同样的代码添加到脚本后,提示我无法打开日志源。
截取部分脚本如下:
                        if [ -d ${src_file}/HulftTrans_${log_suffix} ];then
                                mkdir "${save_dir}/HulftTrans_${log_suffix}"
                                if [ $? != ${RC_OK} ];then
                                        echo "HULFT集配信ログ格納ディレクトリ作成エラー <etc_${log_suffix}>"
                                        return ${RC_ERR}
                                fi
                        fi

                        /usr/local/HULFT/insttmp/bin/utllist -r -from 20140101 -to 20140201 > "${src_file}/HulftRcv_${log_suffix}"
                                if [ $? != ${RC_OK} ];then
                                        echo "HULFTログローテーション該当データ無し <hulrcvlog.dat>"
                                        return ${RC_ERR}
                                fi
           ;;

执行结果如下:
utllist:Can't open rcv log.
---------------------------------------------------------------------------------------------------------

脚本内部给命令输入参数时候有什么规则吗?


请多多关照。
作者: TokyoLinux    时间: 2014-02-05 16:35
本帖最后由 TokyoLinux 于 2014-02-05 16:35 编辑

朋友们,我解决了这个问题了。
一种方法是:
cd /usr/local/HULFT/insttmp/bin
/usr/local/HULFT/insttmp/bin/utllist -r -from 20140101 -to 20140201 > "${src_file}/HulftRcv_${log_suffix}"
添加这样的一句。

另一种方法就是直接在function头上添加环境变量,然后export给全局。

$ HULEXEP=/usr/local/hulft/insttmp/bin
$ export HULEXEP
$ PATH=/usr/local/hulft/insttmp/bin: $PATH
$ export PATH

$ HULPATH=/usr/local/hulft/insttmp/etc
$ export HULPATH


谢谢大家了。今后还请继续关照。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2