【问题标题】:bash script error: file or directory doesnt existbash 脚本错误:文件或目录不存在
【发布时间】:2015-04-29 21:11:27
【问题描述】:

我使用的是 Ubuntu 14.04

这是我第一次编写 bash 脚本。

这里是:

#!/bin/bash       

${file}="/home/isra/files/mongoTemp.json"
${fdiff}="/home/isra/files/mTempDiff.json"
.
.
commands
.
.
        mv ${file} ${fileold}
.
.
commands
.
.
exit

但它给了我这两个错误:

./index.sh: line 4: =$HOME/files/mongoTemp.json: No such file or directory
./index.sh: line 5: =$HOME/files/mTempDiff.json: No such file or directory
mv: missing file operand
couldn't open [$HOME/files/]

老实说,我不确定问题出在哪里。文件确实存在,当它第一次抱怨它们时我手动创建了它们,但它并没有解决问题,还有mv 命令不管用。我做错了什么?

【问题讨论】:

    标签: bash shell ubuntu ubuntu-14.04


    【解决方案1】:

    分配给变量时,使用foo=,而不是$foo=,或${foo}=

    即行:

    ${file}="/home/isra/files/mongoTemp.json"
    ${fdiff}="/home/isra/files/mTempDiff.json"
    

    应该是:

    file="/home/isra/files/mongoTemp.json"
    fdiff="/home/isra/files/mTempDiff.json"
    

    其余的看起来不错。


    请注意,前两个错误是由 ${..}=... 行引起的。

    变量$file$fdiff 为空,这会导致mv 错误"mv: missing file operand"。您未显示的某些后续命令会导致最终错误。不过,最有可能的是,通过正确分配变量,一切都会得到解决。

    【讨论】:

      猜你喜欢
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-26
      • 2017-06-16
      • 2020-05-09
      • 2017-08-06
      • 2016-06-25
      相关资源
      最近更新 更多