bash 구성 파일을 인수로 전달

bash 구성 파일을 인수로 전달

명령줄에서 파일 인수를 스크립트에 전달하려고 하는데 config예상한 결과를 얻지 못합니다. 감사해요:).

구성은 명령줄에서 다음과 같이 호출됩니다.

bash script.sh /path/to/config.txt

/path/to/config.txt의 내용

#File1comment
var1=/path/to/file1
#File2comment
var2=/path/to/file2

script.sh의 내용

config=$1

. $config

echo -e "$@"
test -n "$1" && set -- a b c

현재의

/path/to/config.txt

원하다 --- 스크립팅에 사용 가능한 모든 파일 ---

/path/to/file2
/path/to/file2

새로운 코드

config=$1

set -- $config
echo -e "$@"
while read line; do
  printf "$line" >script.sh
done <"$config"

답변1

구성 파일로 원하는 작업이나 수행해야 하는 작업이 약간 불분명합니다.

구성 파일이 스크립트에 포함하려는 파일인 경우(예제 중 하나에서 수행한 것처럼) $config파일 이름의 코드가 실행됩니다.

filename의 코드를 실행하여 $config두 변수 var1sum 을 설정합니다 var2. 해당 값을 사용하려면 $var1스크립트에서 및를 사용합니다.$var2

#!/bin/bash

config=$1

. $config

printf 'var1 is %s\n' "$var1"
printf 'var2 is %s\n' "$var2"

=다음이 가리키는 파일의 문자 뒤의 문자열을 구문 분석하려는 $config경우아니요파일의 소스를 가져와서 sed다음과 같이 사용하세요.

#!/bin/bash

config=$1

sed -n '/^#/d; /[^=]*=/s///p' "$config"

이 스크립트의 명령은 문자로 시작 하거나 문자가 포함되지 않은 모든 줄을 sed무시합니다 . 한 줄씩 걸러서 줄의 첫 번째 문자와 그 앞의 모든 문자가 제거되고 나머지 데이터가 인쇄됩니다.#==

관련 정보