표준 입력에서 전달된 파일 이름을 얻으려고 합니다. 내 계획은 다음과 같은 함수를 만드는 것입니다.
mySource() {
# get stdin and pass it as an argument to `source`
source $(cat)
}
다음과 같이 호출하세요. $ echo "file1.sh" | mySource
위치 는 다음 file1.sh
과 같습니다.
FILE=success
export FILE
$FILE
초기화가 이라고 가정 hello world
하면 을 실행할 때 인쇄할 것으로 $ echo "file1.sh" | mySource
예상되지만 대신 ;$ echo $FILE
success
hello world
함수에서 파일을 가져오는 방법이 있나요?
답변1
기능을 다음과 같이 변경할 수 있습니다 mySource
.
mySource() {
source "$1"
}
그런 다음 다음을 사용하여 호출하세요.
$ mySource file.sh
$ printf '%s\n' "$FILE"
success
mySource
여러 파일을 처리할 수도 있습니다 .
mySource() {
for f do
source "$f"
done
}