2016-08-12 2 views
-1

아래 스크립트에 문제가 있습니다. 구문 오류 : 잘못된 산술 연산자 (오류 토큰은 ".repo"임). 스크립트의 목적은 MariaDB.repo가 ​​있는지 여부를 확인한 다음 동일한 이름의 빈 파일을 작성하는 것입니다. 친절하게 어디서 잘못되고있는 지 제안하십시오 & 어떻게 해결할 수 있습니까?레포 생성 스크립트입니다.

MDB=$(find '/etc/yum.repos.d/' -maxdepth 1 -name "MariaDB.repo") 

if [[ $"MDB" -eq "MariaDB.repo" ]] 
then 
    echo "Repo already exists" 
else 
    touch /etc/yum.repos.d/MariaDB.repo 
fi 
+0

왜 [-f /etc/yum.repos.d/MariaDB.repo]를 확인하지 않으시겠습니까? –

+0

더 나은, 당신은 언제나 touch/etc/yum.repos.d/MariaDB.repo'를 수행 할 수 있습니다. 그러면 이미 파일의 타임 스탬프가 업데이트됩니다. –

답변

0

몇 가지 문제가 있습니다

  1. $"MDB""$MDB"해야한다.
  2. find의 출력은 파일의 기본 이름이 아닌 전체 경로 이름입니다.
  3. -eq은 숫자를 비교하기위한 것입니다. 문자열을 비교하려면 =을 사용해야합니다.

그러나 find을 사용할 필요는 없습니다. 파일이 존재하는지 테스트 할 수있는 내장 연산자가 있습니다.

MDB=/etc/yum.repos.d/MariaDB.repo 
if [[ -f "$MDB" ]] 
then 
    echo "Repo already exists" 
else 
    touch "$MDB" 
fi 
+0

고마워요. @Barmar – SJP

+0

이 문제가 해결되면 대답을 받아 들여야합니다. 옆에있는 체크 표시를 클릭하십시오. – Barmar

관련 문제