выход из сценария закрывает оболочку

Ответ именно на эту проблему можно получить, если понять, что U -Boot пытается быть чрезвычайно гибким, что иногда может привести к некоторой путанице. Глядя на предоставленную среду, мы видим, что у нас есть bootcmd (, который выполняется, когда заканчивается задержка загрузки ), сводится к:

bootm ${loadaddr} - ${fdtaddr}

А это значит, что мы смотрим на ${loadaddr} для нашего образа, no where для ramdisk и ${fdtaddr} для дерева устройств использовать. В случае uImage в устаревшем -стиле это имеет смысл, так как (виртуальный диск и дерево устройств вряд ли )будут содержаться в файле. Однако FIT-изображение включает в себя все это и предлагает множество дополнительных полезных функций (, которые постер хочет использовать ). Что происходит, так это то, что после выбора дерева устройств, включенного в образ FIT, U -Boot затем анализирует остальные аргументы и ищет ${fdtaddr} для использования дерева устройств. Если bootm _cmd было установлено просто:

bootm ${loadaddr}

вместо этого он будет работать как положено.

-1
10.11.2019, 03:13
2 ответа

@steeldriver прав. Если я запускаю скрипт, используя любой из следующих способов, он работает так, как хотелось бы:

./ex01.sh
sh ex01.sh
bash ex01.sh

Ссылка:

https://www.cyberciti.biz/faq/run-execute-sh-shell-script/
1
28.01.2020, 05:07

справочная страница bash:

.      filename [arguments]
 source filename [arguments]

   Read and execute commands from filename in the current shell environment...

«Поиск» здесь является довольно общим термином. Это означает выполнение команд из файла сценария, как если бы вы вводили их одну строку за другой. Вы остаетесь в своем же баше, а также имеете все переменные и настройки.

"Выполнение" скрипта включает в себя определение как именно . Часто вы вызываете переводчика. bash script.shточно так же, как perl script.pl. Суффиксы не имеют значения. Важно то, что первая строка «binfmt»:#!...:./scriptили script(, если она находится в $PATH ), — это все, что нужно.

. script(поиск)

./script("бег", требуется +x)

технически не то же самое.


Оболочка — это ваш "целый" сеанс в некотором роде. Ctrl -D имеет аналогичный эффект. Им можно управлять, но поскольку интерактивная оболочка — это как скрипт, то это логично.

Попробуйте

]# ps  
  PID TTY          TIME CMD
18768 pts/1    00:00:00 ps
18994 pts/1    00:00:00 bash
]# bash
]# bash
]# ps
  PID TTY          TIME CMD
18780 pts/1    00:00:00 bash
18781 pts/1    00:00:00 bash
18782 pts/1    00:00:00 ps
18994 pts/1    00:00:00 bash
]# exit
exit
]# exit
exit
]# ps
  PID TTY          TIME CMD
18784 pts/1    00:00:00 ps
18994 pts/1    00:00:00 bash
]# 

...чтобы посмотреть, как можно свалить одну раковину на другую, а также уйти.

Все это связано с процессами и заданиями.

2
28.01.2020, 05:07

Теги

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