Файл SH, не выполняющийся успешно

Я являюсь новым в Linux. Попытка выполнить sh файл, который подключает сервер по FTP или VSFTPD и получает некоторые файлы. Вот мой Сценарий

#!/bin/sh
HOST='IP_ADDR'
USER = 'user'
PASS = 'password'

FILE = 'path/filename.txt'

ftp -n $HOST <<END_SCROPT
quote USER $USER
quote PASS $PASS
get $FILE

quit 
END_SCRipt
exit 0

Когда я пытаюсь петлять: sh file.sh это бросает ошибку:

file.sh: 3: file.sh: HOST: not found
file.sh: 4: file.sh: USER: not found
file.sh: 5: file.sh: PASS: not found
file.sh: 7: file.sh: FILE: not found
Not Connected.
Not Connected.
Not Connected.
0
задан 30 September 2014 в 21:00

1 ответ

Удалите Пробелы между переменной и ее значением.

USER='user'
PASS='password'
FILE='path/filename.txt'

Присвоение в сценариях удара не может иметь пробелов вокруг =

Поскольку больше понимает = также, сравнивают оператор. посмотрите этот пример:

if [ "$a" = "$b" ]

enter image description here Отметьте пробел, структурирующий =. В этом случае мы выдерживаем сравнение "$a" и "$b".

if [ "$a"="$b" ] is not equivalent to the above.

Тестирование с примером:

kasiay@kasiyaPC~:$ a=2
kasiay@kasiyaPC~:$ b=3

Затем мы работаем if [ "$a" = "$b" ]; then echo "equal"; else echo "not equal"; fi, результат не будет "равняться", и это - истинный результат.

Но если мы работаем if [ "$a"="$b" ]; then echo "equal"; else echo "not equal"; fi, результат будет "равняться", и это - неправильный результат!!

Почему в этом случае мы - неправильный результат?

Когда мы используем if [ "$a"="$b" ], это анализирующий как if [ A_TOKEN ], затем в этом случае, если условие всегда возвращает истинный результат. например:

if [ "$a"="$b" ]; then    echo "TRUE"; fi
#result is TRUE

if [ 2=3 ]; then    echo "TRUE"; fi
#result is TRUE    

if [ anything ]; then    echo "TRUE"; fi
#result is TRUE

И наконец когда Вы используете USER = 'user' (Я не знаю, какой синтаксический анализ раздела это), затем Вы становитесь "не найденными". и Почему "не найден"?? начиная с синтаксического анализатора, ища значение Пользовательской переменной для сравнения 'пользовательскому' значению. и это "не найдено" право?

1
ответ дан 4 August 2019 в 23:50

Другие вопросы по тегам:

Похожие вопросы: