相关疑难解决方法(0)

Bash变量范围

请解释为什么最后一个"回声"声明是空白的?我希望它在while循环中增加到值1:

#!/bin/bash
OUTPUT="name1 ip ip status" # normally output of another command with multi line output

if [ -z "$OUTPUT" ]
then
        echo "Status WARN: No messages from SMcli"
        exit $STATE_WARNING
else
        echo "$OUTPUT"|while read NAME IP1 IP2 STATUS
        do
                if [ "$STATUS" != "Optimal" ]
                then
                        echo "CRIT: $NAME - $STATUS"
                        echo $((++XCODE))
                else
                        echo "OK: $NAME - $STATUS"
                fi
        done
fi

echo $XCODE
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下语句而不是++ XCODE方法

XCODE=`expr $XCODE + 1`
Run Code Online (Sandbox Code Playgroud)

它也不会在while语句之外打印.我想我在这里缺少一些关于变量范围的东西,但是ol'手册页并没有显示给我.

bash scope pipe

102
推荐指数
3
解决办法
8万
查看次数

REDUX:如何克服Linux上的ksh与AIX/Solaris/HPUX上安装的ksh之间的不兼容性?

我发现了另外一个问题,我们正努力将数百个ksh脚本从AIX,Solaris和HPUX移植到Linux.请参阅此处了解上一个问题.

这段代码:

#!/bin/ksh
if [ -a k* ]; then
    echo "Oh yeah!"
else
    echo "No way!"
fi
exit 0
Run Code Online (Sandbox Code Playgroud)

(当在一个名为以k开头的文件的目录中运行时)产生"哦是的!" 当使用AT&T ksh变体(ksh88和ksh93)调用时.另一方面,它产生和错误消息后跟"没办法!" 在其他ksh变种(pdksh,MKS ksh和bash)上.

我的问题再一次是:

  • 是否有一个环境变量会导致pdksh表现得像ksh93?失败了:
  • pdksh上有选项可以获得所需的行为吗?

linux aix ksh solaris hp-ux

2
推荐指数
1
解决办法
804
查看次数

标签 统计

aix ×1

bash ×1

hp-ux ×1

ksh ×1

linux ×1

pipe ×1

scope ×1

solaris ×1