从文件中读取行时对行进行子串时出现问题

从文件中读取行时对行进行子串时出现问题

DMGR_PATH.out文件包含

/opt/IBM/WebSphere/70/AppServer/profiles/Dmgr01/config CELLNAME
/IBM/websphere/was7.0/profiles/Dmgr01/config CELLNAME

现在我尝试读取该文件并按如下所示对行进行子字符串化。

while IFS= read -r PATH; do

        if [[ $PATH == /IBM/* ]] && [[ "$1" == "XX" ]]; then
        SEARCH_DIR=$PATH
        else if [[ $PATH == /opt/* ]] && [[ "$1" == "YY" ]]; then
        SEARCH_DIR=$PATH
                fi
        fi
done<DMGR_PATH.out

echo "$SEARCH_DIR" | cut -d' ' -f1

但它显示这个错误。

a: line 9: cut: No such file or directory

有人可以帮忙解决这个问题吗?

答案1

PATH您在脚本中使用该变量作为循环变量。这恰好也是 shell 用于查找外部实用程序/命令的环境变量。

cut这就是为什么它在循环后找不到外部实用程序。

请使用其他变量名。

一般来说,我个人倾向于避免在 shell 脚本中使用大写变量名,除非我特别想使用从 shell 本身导出到脚本中的变量值,例如HOMEPWDPATH

相关内容