Что не так в этом сценарии оболочки?

Вы также обнаружите, что частой причиной этой проблемы является файл конфигурации коммутатора службы имен (NSS ), /etc/nsswitch.conf. Хотя вы можете разрешать адреса в командной строке с помощью команд ping и host, другие команды, такие как apt -, терпят неудачу.

Решение состоит в том, чтобы изменить эту строку в /etc/nsswitch.conf:

Отсюда:

hosts:          files mdns4_minimal [NOTFOUND=return] dns myhostname

К этому:

hosts:          files dns

Это должно немедленно решить проблему.

0
05.10.2019, 08:20
1 ответ

Я воспроизвел вашу петлю с помощью:

while IFS="  " read -r line1 line2; do echo "cp $line1 $line2"; done <in

Получается (с простым файлом "in"):

cp 111 aaaa
cp 222 bbb
cp 3333 ccccc

Но если, скажем, третья строка содержит три имени (, то есть имя с пробелом ), получится

cp 33 33 ccccc

и вот вдруг cp"переключается" в режим "копировать несколько файлов в каталог", но не получается, т.к. цель "ccccc" (или "Data1.dat" )не является каталогом.

cp: missing destination file operand after 'Data2.dat'

Это происходит после cp onefile. Что-то путает ваши аргументы. Вы должны сделать несколько тестов...

The input-file has two columns for the file names.

Вы уверены?

2
28.01.2020, 02:29

Теги

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