/etc/nsswitch.conf
файл по умолчанию для разрешения доменного имени в эти дни. У меня есть следующая строка наверху моего /etc/host.conf
файл:-
# The "order" line is only used by old versions of the C library.
nsswitch.conf
используется в значительной степени всем на моем поле Debian для определения имен. Так, данный вышеупомянутые строки в Ваших файлах, порядок разрешения имени по умолчанию состоял бы в том, чтобы проверить /etc/hosts
во-первых, и затем используйте серверы имен, настроенные в /etc/resolv.conf
сделать поиск DNS.
В последнее время (начиная с о Ubuntu 11.10), /etc/resolv.conf
по умолчанию настроен для использования интерфейса localhost (127.0.0.1), где программа демона dnsmasq
слушает на порте 53 для запросов DNS. Это в свою очередь обычно делает разрешение DNS, как настроено сервером DHCP Вашей LAN, но это может быть вручную переопределено в конфигурации сети ОС GUI.
Примечание: Вы не упоминали то, что ОС Вы используете, и вышеупомянутое прибывает из личного опыта с Ubuntu Debian. Значения по умолчанию могли бы отличаться на различных ароматах Linux
Я думаю, что Вашей проблемой является использование eval
. Если Вы берете свой сценарий и используете массивы для хранения команд до выполнения, это должно быть достаточно для выполнения тех команд.
#!/bin/bash
CMD1=(echo "onecmd")
CMD2=(printf "%s\n" ascrip*)
CMD3='echo cmd3'
${CMD1[@]}
${CMD2[@]}
$CMD3
Никакая потребность прокрутить их eval
.
$ ./ascript.bash
onecmd
ascript.bash
cmd3
Вы видите то, что продолжается негласно, если Вы включаете режим отладки Bash.
$ bash -x ./ascript.bash
+ CMD1=(echo "onecmd")
+ CMD2=(printf "%s\n" ascrip*)
+ CMD3='echo cmd3'
+ echo onecmd
onecmd
+ printf '%s\n' ascript.bash
ascript.bash
+ echo cmd3
cmd3
cp -fr _opt/ke/cache _opt/ke/conf _opt/ke/modules _opt/ke/scripts _opt/ke/t /home/opt/ke
) вручную, файлы повреждаются, также. Но при выполнении его в другом порядке (какcp -fr _opt/ke/cache _opt/ke/t _opt/ke/conf _opt/ke/modules _opt/ke/scripts /home/opt/ke
) все прекрасно снова. Таким образом, я предполагаю, что короткое имя каталога "t" вызывает это (ошибка, возможно?). – Oliver N. 11.10.2013, 17:50eval
как это. Только если мне вложили переменные в массиве, что я хочу быть расширенным предшествующий, сделайте я используюeval
. – slm♦ 11.10.2013, 18:22eval
повышает красный флаг. Это полностью повредится для определенных имен файлов. Если кому-то разрешают выбрать имя файла под_opt/ke
, они пишут фрагмент кода, который выполняет Ваш сценарий.eval
тонкий инструмент должен использоваться экономно, и Вы используете его неправильно. – Gilles 'SO- stop being evil' 12.10.2013, 01:56