2015-10-22 78 views
0

我有一個,如果是尋找/etc/yum.repos.d/回購文件是否存在陳述:我的代碼如下:聲明如果不能正確識別回購文件存在

OptoolsRepo='rhel-7-server-7.0-rpms' 

    if [ -e /etc/yum.repos.d/$OptoolsRepo ] 
    then 
     echo " " 
      echo "Your Repo For OpenStack OpTools already exists." 
      else 
     #  function add-repo() { 
     #    reponame='rhel-7-server-rpms' 
     #    url='XXXXXXX/XXX/XXX/XXXX/' 
         touch /etc/yum.repos.d/$OptoolsRepo.repo 
         echo -e "[$OptoolsRepo]\nname=$OptoolsRepo\nbaseurl=${urlOptools}\nsselverify=0\nenabled=1\ngpgcheck=0\nmetadata_expire=12h" >> /etc/yum.repos.d/$OptoolsRepo.repo 
     #} 
    fi 

/etc/yum.repos.d/我看到下面的:

[[email protected] ~]# ls -lah /etc/yum.repos.d/ 
total 52K 
drwxr-xr-x 2 root root 4.0K Oct 22 13:42 . 
drwxr-xr-x 91 root root 8.0K Oct 19 14:18 .. 
-rw-r--r-- 1 root root 4.0K Oct 21 14:09 .repo 
-rw-r--r-- 1 root root 254 Jun 29 03:59 rhel7-isv.repo 
-rw-r--r-- 1 root root 269 Jun 19 10:45 rhel7-security.repo 
-rw-r--r-- 1 root root 518 Oct 22 13:42 rhel-7-server-7.0-rpms 

我不知道爲什麼會出現這種情況。我的「if」語句是否存在語法問題?如果任何人都可以幫助,愛會有幫助

+1

爲什麼你把'「」'周圍呢? if語句的一般語法是:if [// statement];然後 – JackVanier

+0

甚至不''''但反引號。 –

+0

只是要清楚,問題是該語句不能識別回購文件已經存在。 – user2019182

回答

0

它只是一個語法錯誤,正確的方法是:

#!/bin/bash 

OptoolsRepo='rhel-7-server-7.0-rpms' 

    if [ -e "/etc/yum.repos.d/"$OptoolsRepo ]; then 

     echo " " 
      echo "Your Repo For OpenStack OpTools already exists." 
      else 
     #  function add-repo() { 
     #    reponame='rhel-7-server-rpms' 
     #    url='XXXXXXX/XXX/XXX/XXXX/' 
         touch /etc/yum.repos.d/$OptoolsRepo.repo 
         echo -e "[$OptoolsRepo]\nname=$OptoolsRepo\nbaseurl=${urlOptools}\nsselverify=0\nenabled=1\ngpgcheck=0\nmetadata_expire=12h" >> /etc/yum.repos.d/$OptoolsRepo.repo 
     #} 
    fi 
+0

嘿道格拉斯,不幸的是沒有解決問題。我認爲只要與語句本身在同一行上,就只需要分號。 – user2019182

+0

確實只有在'then'出現在另一行時才需要分號,但是這應該可以解決您的問題,因爲@douglas在if語句中也從'then'附近刪除了錯誤的反引號。 – JNevill

+0

抱歉,我的問題是不正確的!當我輸入代碼時,我沒有把''then''當作上傳錯誤。想象一下沒有'then'的語句 – user2019182