쉘 변수 정의

쉘 변수 정의

두 셸 스크립트 사이에 변수를 정의하는 데 문제가 있습니다. 기본적으로 우리가 하려는 작업은 실행 ./get_variables.sh하고 "도메인 입력:" 및 "westacp 비밀번호 입력:"의 세부 정보를 입력한 다음 세부 정보를 변수로 가져오는 것입니다.vestacp.sh

get_variables.sh콘텐츠

#!/bin/sh
echo "Enter the domain: "
read $domain
echo "Enter the vestacp password:"
read $rvp


/root/vestacp.sh $domain $rvp

그리고

vestacp.sh콘텐츠

sed -i s/VAR1/$domain/g config.php
sed -i s/VAR2/$rvp/g config.php

config.php문서 내용

VAR1
VAR2

VAR1 및 VAR2는 Vestacp.sh에서 sed를 사용하여 ./get_variables.sh를 실행할 때 입력한 데이터로 대체되어야 합니다.

config.php실행 후 빈 문제가 발생합니다../get_variables.sh

답변1

두 가지 오류가 표시됩니다.

  • read variable있어서는 안 된다$
  • 변수는 이름으로 전달되지 않습니다. 두 번째 스크립트는 첫 번째 스크립트에서 호출된 이름으로 변수를 읽으려고 시도합니다. 첫 번째 스크립트에서 무엇이 호출되었는지 알 수 없습니다.

또한 문제를 분석하십시오. 누구든지 큰 프로그램을 작성하고 실행하고 작동시키는 것은 불가능합니다. 이 경우 각 스크립트를 개별적으로 테스트하세요. 그런 다음 직접 작업을 시작하고 함께 작업하도록 하세요.

shellcheck를 사용하여 스크립트를 테스트할 수도 있습니다. 몇 가지 오류가 발견될 것입니다. 아직 테스트가 필요합니다. sudo apt-get install shellcheck데비안에 설치하세요.

관련 정보