По всей вероятности, преступником является NetworkManager - он восстанавливает /etc/resolv.conf
на запуске/завершении работы и каждый раз, когда Ваши соединения управляемой сети изменяются.
Ваш лучший выбор, если Вы не хотите лишить части своей установки из Вашей системы, состоит в том, чтобы добавить Вашего пользователя к netdev
группа (sudo adduser myuser netdev
добьется цели), и затем использование network-manager-gnome
или network-manager-kde
в зависимости от Вашей предпочтительной разновидности, чтобы справиться с настройками и указать Ваши серверы DNS. Полезное учебное руководство может быть найдено здесь.
Поочередно, можно вырыть в /etc/network/interfaces
и укажите, что сетевым подключением, которое Вы используете для соединения с Интернетом, не должен управлять NetworkManager, затем добавьте ключевое слово dns-nameservers
к строке файла конфигурации для того интерфейса.
Можно использовать if
проверять. Например, можно сделать что-то вроде этого вместо последних двух строк в сценарии выше:
if [ -n "$1" ]; then
echo "$1" >> $file
else
exec leafpad $file
fi
Это говорит: если первым аргументом не является пустая строка (это что -n
тест делает), затем работайте echo
, еще выполненный leafpad
.
Можно читать больше об этом здесь:
Чтобы быть более универсальным, использовать "$@"
вместо "$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