2015-02-27 3 views
0

Я использую Ubuntu 14.04Ошибка сценария bash: файл или каталог не существует

Это мой первый раз, когда я написал сценарий 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 не работает. Что я делаю не так?

Любая помощь очень ценится! Спасибо.

ответ

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". Некоторая более поздняя команда, которую вы не указали, вызывает окончательную ошибку. Хотя, скорее всего, все будет исправлено путем правильного назначения переменных.

+0

Это исправило все ошибки, которые у меня были. Спасибо. :) –

Смежные вопросы