Как использовать дополнительный аргумент?

По всей вероятности, преступником является NetworkManager - он восстанавливает /etc/resolv.conf на запуске/завершении работы и каждый раз, когда Ваши соединения управляемой сети изменяются.

Ваш лучший выбор, если Вы не хотите лишить части своей установки из Вашей системы, состоит в том, чтобы добавить Вашего пользователя к netdev группа (sudo adduser myuser netdev добьется цели), и затем использование network-manager-gnome или network-manager-kde в зависимости от Вашей предпочтительной разновидности, чтобы справиться с настройками и указать Ваши серверы DNS. Полезное учебное руководство может быть найдено здесь.

Поочередно, можно вырыть в /etc/network/interfaces и укажите, что сетевым подключением, которое Вы используете для соединения с Интернетом, не должен управлять NetworkManager, затем добавьте ключевое слово dns-nameservers к строке файла конфигурации для того интерфейса.

1
19.01.2013, 03:19
2 ответа

Можно использовать if проверять. Например, можно сделать что-то вроде этого вместо последних двух строк в сценарии выше:

if [ -n "$1" ]; then
  echo "$1" >> $file
else
  exec leafpad $file
fi

Это говорит: если первым аргументом не является пустая строка (это что -n тест делает), затем работайте echo, еще выполненный leafpad.

Можно читать больше об этом здесь:

8
27.01.2020, 23:12

Чтобы быть более универсальным, использовать "$@" вместо "$1" - это позволяет Вам записать

draft use many words without quoting.
#!/bin/bash
file=rascunho
printf "\n\n------< %s >------\n" "$(date "+%b %d, %Y - %T")" >> $file
# if any arguments were given, write them to the file, else edit the file
if [[ $# -gt 0 ]]; then
    echo "$@" >> $file
else
    exec leafpad $file
fi

Для записи строки в начале файла можно использовать группирующуюся конструкцию:

{ echo "first line"; cat $file; } > temp && mv temp $file
1
27.01.2020, 23:12

Теги

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