변수 이름이 포함된 데이터/입력을 사용하는 스크립트

변수 이름이 포함된 데이터/입력을 사용하는 스크립트

그래서 여러 컴퓨터에서 실행되는 스크립트에 대해 읽고 싶은 디렉터리 목록이 포함된 "Directories.dat" 파일이 있습니다. 따라서 파일의 디렉토리 목록은 일반적으로 변수로 정의됩니다.

#Directories.Dat
/home/$USER
$WORKDIR
$APPDIR
...etc 

/home/$USER그러나 스크립트가 Directories.dat 파일을 실행하면 $line이 대신 에 설정됩니다./home/myuser

#!/bin/bash
#myscript.sh
for line in $(cat Directories.dat) 
do 
SomeCommand $line
done

사용하면 안되나요 cat? eval이 작업을 수행하는 데 적합한 유일한 기능 인가요 ? 아니면 SomeCommand $(eval echo $line) #DangerZone Directory.dat 파일의 행을 읽고 저장된 값과 함께 변수를 표시하는 다른 방법이 있습니까?

답변1

문제에서 벗어나라

#!/bin/bash
source bashrc.sh mysources.sh
#myscript.sh
for line in $(cat Directories.dat) 
do 
SomeCommand $(echo $line | envsubst)
done

관련 정보