Каково различие между выполняющимся использованием сценария Cygwin и PuTTY?

Теперь я получаю a script.sh, ранее это выполнялось с помощью PuTTY, если это было записано в VMware, но теперь я хочу выполнить в использовании Windows Cygwin, я уже копирую script.sh к соответствующему каталогу, но некоторым командам Cygwin не может распознать.

generate(){
 date +%T
}

TIME = generate()
echo " Current Time: $TIME"

После выполняются в Cygwin

script.sh: line 3: syntax errot neat unexpected token '$'<\r''
script.sh: line 3:'generate<><
0
задан 18.03.2011, 08:59

1 ответ

У Вас есть несколько ошибок в Вашем сценарии. У Вас не может быть пробелов вокруг знака "равно" в присвоении. Для присвоения вывода функции или программы к переменной, необходимо использовать замену команды, что означает, что название команды окружается $() (который предпочтителен), или обратные галочки (который менее желателен). Кроме того, когда Вы вызываете функцию, Вы не используете круглые скобки после того, как имя функции как Вы было бы на других языках.

generate () {
    date +%T
}

TIME=$(generate)

echo " Current Time: $TIME"

$'\r' ошибка прибывает из наличия окончаний строки Windows. Можно использовать dos2unix преобразовать файл или использовать редактора, которого можно выбрать который тип окончаний сохранить файл с.

dos2unix script.sh
1
ответ дан 24.11.2019, 12:05

Теги

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