Этот комментарий о «других администраторах» "намекает, что у вас есть права root
в системе, в которой вы хотите сохранить файл. Все, что вы могли настроить в качестве разрешений, может быть отменено кем-то с такими же привилегиями.
Если это не проблема, и никто не имеет расширенных привилегий, вы можете просто поместить файл в / tmp
или / var / tmp
, которые обычно имеют t -bit set (запрещает другим не привилегированным пользователям удалить его. Вы можете изменить файл, чтобы сделать его доступным для записи в группе (и изменяемым другими в той же группе).
Вы можете
servers=() # declare an empty array
# allow empty input or the string "END" to terminate the loop
while IFS= read -r server && [[ -n $server && $server != "END" ]]; do
servers+=( "$server" ) # append to the array
done
declare -p servers # display the array
Это также позволяет пользователю вручную вводить записи или выполнять перенаправление из файла.
Сценарии или программы очень редко просят пользователя в интерактивном режиме предоставить список элементов (, эффективно действуя как текстовый редактор для бедняков без отмены ).
Сценарии или программы гораздо чаще читают списки элементов из подготовленного файла:
#!/bin/sh
while IFS= read -r item; do
printf 'The item given by the user is %s\n' "$item"
done
Затем этот скрипт будет использоваться как
$./script.sh <myfile
, где myfile
— текстовый файл со строками, которые скрипт будет читать и с ними что-то делать.
Запуск этого скрипта без входного файла был бы возможен. Тогда ввод нужно будет вводить вручную. Чтобы сигнализировать об окончании этого ручного ввода, нужно нажать Ctrl+D .