Теперь я получаю 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<><
У Вас есть несколько ошибок в Вашем сценарии. У Вас не может быть пробелов вокруг знака "равно" в присвоении. Для присвоения вывода функции или программы к переменной, необходимо использовать замену команды, что означает, что название команды окружается $()
(который предпочтителен), или обратные галочки (который менее желателен). Кроме того, когда Вы вызываете функцию, Вы не используете круглые скобки после того, как имя функции как Вы было бы на других языках.
generate () {
date +%T
}
TIME=$(generate)
echo " Current Time: $TIME"
$'\r'
ошибка прибывает из наличия окончаний строки Windows. Можно использовать dos2unix
преобразовать файл или использовать редактора, которого можно выбрать который тип окончаний сохранить файл с.
dos2unix script.sh