2014-02-17 3 views
0

Я работаю над скриптом для установки массива raid5. У меня возникли проблемы с вставкой auto = yes, когда скрипт спросит: если я хочу продолжить создание массива. Я попробовал --auto = yes (http://www.linuxmanpages.com/man8/mdadm.8.php), но очень не уверен, куда его поместить.Auto yes to raid5 array script

#!/bin/bash 
mdadm mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdc1 /dev/sdd1 /dev/sde1 --spare-devices=1 /dev/sdf1 

if [ $? -eq 0 ]; then 
    echo OK 
else 
    echo FAIL 
fi 

ответ

2

1) вы можете использовать HEREDOC для решения таких проблем.

, например, для passwd команды:

#!/bin/bash 
passwd user <<EOF 
mypassword 
mypassword 
EOF 

Вы также можете запустить свой сценарий и поставить heredoc:

./script <<EOF 
>yes 
>yes 
>no 
>EOF 

UPDATE:

Это наконец-то, что вы хотите

если у вас есть один вопрос:

./script <<EOF 
>yes 
>EOF 

Также вы можете:

#!/bin/bash 
mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdc1 /dev/sdd1 /dev/sde1 --spare-devices=1 /dev/sdf1 <<EOF 
yes 
EOF 

2) Существует и другое решение:

yes | command-that-asks-for-input 

или, если в столице «Y»:

yes Y | command-that-asks-for-input 
+0

Как это будет работать в моем случае? – user3185936

+1

@ user3185936 см. Часть обновления – MLSC

+0

Если я хочу, чтобы она была в сценарии if в качестве скрипта, чтобы проверить, была ли эта команда запущена или нет. Как это будет работать? – user3185936