bash脚本错误:文件或目录不存在

问题描述 投票:0回答:1

我正在使用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个回答
2
投票

分配变量时,使用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"。您未显示的某些稍后命令会导致最终错误。虽然,最有可能的是,通过适当地分配变量,可以固定所有内容。

© www.soinside.com 2019 - 2024. All rights reserved.