use*_*936 1 bash raid command ubuntu-12.04 mdadm
我正在编写一个安装阵列 raid5 的脚本。当脚本询问:是否要继续创建数组时,我在插入 auto=yes 时遇到问题。我尝试了 --auto=yes (http://www.linuxmanpages.com/man8/mdadm.8.php),但非常不确定将其放置在哪里。
#!/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
Run Code Online (Sandbox Code Playgroud)
1) 可以使用HEREDOC来解决此类问题。
例如对于passwd命令:
#!/bin/bash
passwd user <<EOF
mypassword
mypassword
EOF
Run Code Online (Sandbox Code Playgroud)
您还可以运行脚本并输入heredoc:
./script <<EOF
>yes
>yes
>no
>EOF
Run Code Online (Sandbox Code Playgroud)
更新:
这终于是你想要的了
如果您有一个问题:
./script <<EOF
>yes
>EOF
Run Code Online (Sandbox Code Playgroud)
您还可以:
#!/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
Run Code Online (Sandbox Code Playgroud)
2) 还有另一种解决方案:
yes | command-that-asks-for-input
Run Code Online (Sandbox Code Playgroud)
或者,如果需要大写“Y”:
yes Y | command-that-asks-for-input
Run Code Online (Sandbox Code Playgroud)