CentOS 7 - Принуждение диска быть /dev/sda

read -r "job$i" < ...

Это должно работать, если i=3, то read должно установить job3.

Однако ваши циклы выглядят немного не так:

for((i=0; i < Counter; i++)); do
    while read -r Parmfilesjobid; do
        IFS=$'\n' read -d '' -r -a  "job$i" < ${Parmfilesjobid[$i]}

while read поместит только одно значение в Parmfilesjobid, так что, например. ${Parmfilesjobid[1]} будет удален. (Конечно, скалярный доступ, такой как $var, совпадает с ${var[0]}, поэтому, если вы ранее установили Parmfilesjobid как массив, у вас могут быть значения и с другими индексами, но вы не используете значение из read, за исключением случаев, когда i=0.

Вы также используете Parmfilesjobid как входные данные для цикла while read... и как переменную, используемую read, которая немного сбивает с толку и означает, что последние итерации for дадут while последний Parmfilesjobid, прочитанный в предыдущей итерации в качестве входных данных. Это кажется несколько странным.

Поскольку я не вижу вашего ввода, я не совсем уверен, что вы хотите здесь сделать. Но я подозреваю, что что-то вроде этого может быть ближе:

i=0
while read -r filename ; do
    IFS=$'\n' read -d '' -r -a  "job$i" < "$filename"
    let i++
done <<< "${var_with_filenames}"
1
23.11.2018, 16:13
1 ответ

UUID ни о чем не говорит. У меня есть небольшой сервер с восемью в нем идентичные диски HGST -, так КАКОЙ из них я смотрю? Слишком большая вероятность ошибок при использовании UUID.

Самый простой способ -— присвоить дискам одинаковые метки. когда вы форматируете их, а затем используете fstab для их монтирования по метке одинаковые точки на всех ваших машинах. Тогда у вас нет возиться с sda1, sda2, sdb1 и т. д. для большинства практических целей. своего рода операция.

Некоторые системные инструменты требуют «/dev/[something]» вместо использования точка монтирования... но загляните в /dev и вы увидите "/dev/disk/by -label" там, и вы обычно можете использовать это вместо «sda1» или чего-то еще.

1
27.01.2020, 23:49

Теги

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