Рейтинг:6

мой ubuntu странным образом показывает эхо сценария оболочки

флаг cl

Привет, у меня есть файл со сценарием оболочки, который выглядит так

#!/бин/баш 
TodayDate=$(дата)
echo "Сегодня ${todayDate}. Хороших выходных!"

но когда я вызываю этот файл в своем терминале Ubuntu, я получаю такой результат

. хороших выходных!eb 12 22:29:00 CET 2022

Почему это не показывает

Сегодняшняя дата — суббота, 12 февраля, 22:31:55 по центральноевропейскому времени 2022 года. Хороших выходных!

?? Изображение ниже свидетельствует о том, что Ubuntu показывает странное эхо в терминале.

введите описание изображения здесь

Кто-то попросил меня загрузить результат ls -alh. Это результат

всего 0
drwx------ 1 имя пользователя имя пользователя 512 12 фев 22:07
drwx------ 1 имя пользователя имя пользователя 512 12 фев 21:57
-rwx------ 1 имя пользователя имя пользователя 77 12 фев 22:41 4Bbash

версия изображения: введите описание изображения здесь

pLumo avatar
флаг in
может быть, ваш файл имеет окончание строки Windows?
game lover avatar
флаг cl
@pLumo на самом деле я не знаю, что такое окончания строк Windows. Я просто написал код и пытаюсь запустить файл.
Merajul Arefin Pial avatar
флаг br
Как вы это запустили? Можете ли вы добавить вывод команды ```ls -alh``` в ту папку, которая содержит этот скрипт?
game lover avatar
флаг cl
@MerajulArefinPial Я опубликовал результат ls -alh.
Merajul Arefin Pial avatar
флаг br
сработало ли решение @pLumo?
game lover avatar
флаг cl
@MerajulArefinPial Я пытаюсь найти способ изменить окончания строк Windows на окончания строк Unix в блокноте ..
pLumo avatar
флаг in
Я не думаю, что Блокнот может это сделать, используйте правильный текстовый редактор, а не такое дрянное программное обеспечение, например. Notepad++ или VSCode или около того.
game lover avatar
флаг cl
@pLumo это грустно. Хорошо, тогда я попробую скачать notepad++
pLumo avatar
флаг in
Спросите Microsoft, почему их программное обеспечение все еще такое же дерьмо, как и 30 лет назад.
pLumo avatar
флаг in
См. здесь блокнот ++ https://askubuntu.com/a/645030/631600
Рейтинг:12
флаг in

Ваш файл имеет окончание строки Windows \r\n.

  • означает «Возврат каретки» (возврат к началу строки)
  • \n означает «Перевод строки» (переход к следующей строке).

Unix использует только \n как окончание строки.

Таким образом, ваша переменная сегодняДата будет включать в конце. Это вернет курсор в первую позицию, а текст после него перезапишет предыдущий текст.

Настройте текстовый редактор на использование окончаний строк Unix (перевод строки) или используйте dos2unix чтобы исправить ваш файл. Проверять это или же это.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.