Почему GRUB удаляется каждый раз, когда я загружаюсь в Windows?

Ответ ændrük в порядке, но, возможно, маленький тяжеловес для задачи.

Вот скрипт, который пишет скрипт на основе его аргументов

#!/bin/sh
# terminal-plus-command: start a subordinate terminal which runs
# the interactive shell after first running the command arguments

tmpscript=/tmp/tmpscript.$$
echo "#!$SHELL" > $tmpscript
echo "$@" >> $tmpscript
echo exec "$SHELL" >> $tmpscript
chmod +x $tmpscript
gnome-terminal --command $tmpscript
rm -f $tmpscript

Если вы не сделано много программирование оболочки, здесь, кажется, больше волшебства, чем есть. Во-первых, я называю временным файлом для хранения скрипта, где $$ - это идентификатор процесса оболочки, запускающей этот скрипт. Метафора /tmp/something.$$ используется в случае одновременного запуска двух экземпляров этого скрипта, они не будут пытаться использовать один и тот же временный файл.

Переменная $SHELL установлена ​​на имя оболочки, запускающей скрипт. Если вы используете / usr / bin / bash, предположительно, вам также понадобится использовать мини-скрипт.

"$@" является идиомой оболочки для «интерполировать все мои аргументы, цитируя их при необходимости». Этот особый синтаксис заставляет

script.sh 'my file' your\ file

интерполировать аргументы как два элемента

"my file" "your file"

вместо четырех, что $@ даст

"my" "file" "your" "file"
[d7 ] В последних строках сценария устроен гном-терминал для запуска мини-скрипта, а затем запускается интерактивная оболочка. Когда терминал gnome завершает работу, временный скрипт удаляется, потому что мусор нераскрывается.

Последняя строка не является частью мини-скрипта, она демонстрирует, что работает мини-скрипт. Если 11-строчный скрипт выше находится в файле с именем rt.sh, то chmod делает его исполняемым, а затем он выполняется.

$ chmod +x rt.sh && ./rt.sh echo hello world

Результатом всего этого будет гном-терминал, который запускается, отображает

hello world

в своей первой строке и затем запускает интерактивную оболочку:

msw@myhost:~$
0
задан 13 May 2017 в 22:35

0 ответов

Другие вопросы по тегам:

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