Теперь я получаю 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<><

1 ответ1

1

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

generate () {
    date +%T
}

TIME=$(generate)

echo " Current Time: $TIME"

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

dos2unix script.sh

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .