检查条件,然后自动回答问题



我有一个问题:

这是一种检查条件然后自动回答诸如heredoc发生的事情之类的问题的方法吗?

我知道我们可以自动回答问题的两种方法(通过passwd命令举例):

1) 配管

<password> | passwd <username>

2)特雷文档

passwd <username> <<EOF
<password>
<password>
EOF

现在,问题

如何提出条件来回答它们

///
if [ `passwd` -eq 0 ]; then
    <<EOF
     <password>
     <password>
   EOF
fi

例如,这是不可能的,知道吗?

#!/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
    <<EOF                                                                                                                                                                        
    ok                                                                                                                                                                           
EOF                                                                                                                                                                              
elif [ $? -ne 0]; then
    <<EOF                                                                                                                                                                        
    failed                                                                                                                                                                       
EOF                                                                                                                                                                              
fi

欢迎heredocspiping或任何其他解决方案,

我想先检查条件,然后能够回答问题

谢谢

也许是用期望命令?

http://www.thegeekstuff.com/2010/12/5-expect-script-command-line-argument-examples/

这里有一个小FTP的例子,因为我不熟悉mdadm。您可以看到它根据服务器的响应执行了一些不同操作 - 我认为这就是您要执行的操作。

  # Connect to the FTP server using the "spawn" command.
  spawn ftp $hostname
  # Wait for a login prompt.
  expect -re "(Name|login|Login|Username).*:.*" {
      # Login prompt received. Send username to server.
      exp_send "$usernamer"
      exp_send_user "sent usernamen"
  } eof {
      # No login prompt received. Display an error.
      exp_send_user "could not connectn"
  }

我假设您想检查操作的结果。您可以通过两个步骤执行此操作:

passwd <user> <<EOF
     <password>
     <password>
EOF
if [ $? -eq 0 ]; then
    echo "Great success"
fi

$?保存上次执行的语句的返回代码。

相关内容

  • 没有找到相关文章

最新更新