2016-12-06 33 views
0

我寫了一個shell腳本來輸入gentoo前綴和運行命令。 但是一旦它進入Gentoo前綴,它會停止並且不執行其餘的步驟。根據我的說法,console已經從RHEL變成了GENTOO,它阻止了shell腳本執行其他命令。 有沒有辦法,如果沒有輸入GENTOO前綴,我可以在shell腳本中執行gentoo特定命令?進入Gentoo並執行gentoo命令,如equery

命令一起使用:

Gentoo_prefix 
equery list > file.csv 

腳本:

cat file | awk '{print $3}'| cut -d '/' -f3 | cut -d '_' -f1 | sort -u | uniq -u | sed 's/.$//' > files 
read -n 2 Detail 
files=`echo $Detail | tr '[:upper:]' '[:lower:]'` 
read server 
Server=`echo $server | tr '[:upper:]' '[:lower:]'` 
for nat in $(cat files) 
do 
    for serv in $Server 
    do 
     if [ $files == $nat -a $Server == $serv ] 
     then 
      ls /tmp/$nat'0_'$serv/ | grep -i python > module 
      read module_name 
      ls /tmp/$nat'0_'$serv/$module_name/ | grep ^3 > version 
      $version_name = ' ' 
      read version_name 
      for name in $(cat version) 
      do 
       if [ $version_name == ' ' ] 
        for pack in $(cat module) 
        do 
         if [ $version_name == $pack ] 
         then 
          $version_name 
          equery list > components.csv 
+0

我們不能幫你,如果你不發佈腳本。 – Barmar

+0

將其發佈在問題中,以便它可以被格式化爲可讀。 – Barmar

+0

請檢查問題現在我也發佈了腳本。一旦$ version_name行被執行,它就會進入Gentoo並且下一行不會被執行。 – Anamika

回答

1

爲了養活輸入到一個腳本命令,你必須要管,或使用這裏-doc的,不只是如果您以交互方式輸入命令,則將輸入放在命令後面。

    if [ $version_name == $pack ] 
        then 
         echo 'equery list > components.csv' | $version_name 

    if [ $version_name == $pack ] 
        then 
         $version_name <<EOF 
equery list > components.csv 
EOF 
+0

好的謝謝!我會試試這個,讓你知道它是否有效。 – Anamika

+0

echo equery list | $ version_name> components.csv,這也可以與echo'equery list> components.csv'|一起使用$ version_name謝謝! – Anamika