Понимание вывода cut -f

tftp обычно ограничивается каталогом /tftpboot, я не ожидал, что он будет работать, чтобы получить что-то из домашнего каталога пользователя.

Также проверьте права доступа к файлам. IIRC (это было некоторое время ), так как tftp не аутентифицированные файлы должны быть доступны для чтения всем.

0
25.11.2019, 19:13
1 ответ

Для этого вообще не нужно хранить данные в переменной, подойдет цикл по выходу discover:

discover nginx --human=nood | cut -f 1,6 |
while read -r instanceID IPAddress; do
    # Use "$instanceID" and "$IPAddress" here
done

В качестве альтернативы, в bashили оболочке, которая понимает подстановки процессов(<(... )):

while read -r instanceID IPAddress; do
    # Use "$instanceID" and "$IPAddress" here
done < <( discover nginx --human=nood | cut -f 1,6 )

Разница между этими двумя видна только в том случае, если вы хотите перенести значения некоторой переменной из цикла . В первом примере цикл будет выполняться в подоболочке, и поэтому вы не будете использовать какие-либо значения переменных, которые установлены внутри цикла после цикла (они существуют в своей собственной локальной среде ).

Во втором примере никакие подоболочки не задействованы (, за исключением той, которая выполняет подстановку процесса с помощью discoverи cut), поэтому значения переменных доступны после цикла.

0
28.01.2020, 03:05

Теги

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