【问题标题】:Not able to append the new folder name to the existing path in UNIX scripting无法将新文件夹名称附加到 UNIX 脚本中的现有路径
【发布时间】:2013-02-22 19:55:17
【问题描述】:

这是shell脚本中的以下代码(while循环)

do
    echo "directory under is @ " ${dir} >>${DEBUG_LOG_FILE}
    BUP="$PS_HOME/${PSFT_SID}/${dir}";
    echo "backup folder created is1  :  ${BUP} " ${BUP}   >>${DEBUG_LOG_FILE}
    $BUP=${BUP}+"/ArchFolder"
    BUP1=${BUP}+"ArchFolder" (Since "/" is already in the BUP variable"
    echo "backup folder created is 2 :  ${BUP1} " ${BUP1}   >>${DEBUG_LOG_FILE}
        echo "backup folder created is 3 :  ${BUP} " ${BUP}   >>${DEBUG_LOG_FILE}
    mkdir -p ${BUP}

done

当我在开头回显 ${BUP} 时,我得到 /psoft/PNRDP1/sqr/ 作为输出(目录结构)

我的任务:尝试将 /ArchFolder 附加到上述输出,然后尝试使用 mkdir 命令创建目录,如上述代码 sn-p

在我看来,/ArchFolder 在“/psoft/PNRDP1/sqr/”的末尾没有连接起来。

我的问题是 1)连接技术是否有任何错误。

2) 或者不是在 mkdir 中连接并使用该变量,我是否应该在 mkdir 中附加新的目录名称并执行,这是否可行,如果是的话,任何人都可以向我展示这段代码。

提前致谢

【问题讨论】:

    标签: linux shell unix scripting


    【解决方案1】:

    在 Bash 中连接两个变量很容易,参见here 中的示例:

    foo="Hello"
    foo="$foo World"
    echo $foo
    > Hello World
    

    但不需要额外变量的更简单的解决方案与您在第二个问题中提到的类似:

        mkdir -p "${BUP}/ArchFolder"
    

    【讨论】:

    • 如果你注意到,最后已经有一个“/”,“$BUP output”,我还需要像你给的那样在mkdir中添加那个/
    • 不,在这种情况下,只需省略“/”:mkdir -p "${BUP}ArchFolder"
    猜你喜欢
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    相关资源
    最近更新 更多