#!/usr/bin/env bash
scriptdir="$HOME"
touch $scriptdir/foo.txt
. "$scriptdir/foo.txt" ||
{ echo "Missing '$scriptdir/foo.txt'. Exiting." ;
exit 1 ;}
echo "$scriptdir/foo.txt is present"
echo
rm "$scriptdir/foo.txt"
. "$scriptdir/foo.txt" ||
{ echo "Missing '$scriptdir/foo.txt'. Exiting." ;
exit 1 ;}
.
in의 사용법을 이해할 수 없습니다.. "$scriptdir/foo.txt" ||
비슷하게 작동하는 것 같습니다 if [ -f "$scriptdir/foo.txt ]
. 그렇죠?
그래서
scriptdir="$HOME"
touch $scriptdir/foo.txt
if [ -f "$scriptdir/foo.txt" ] ; then
echo
else
{ echo "Missing '$scriptdir/foo.txt'. Exiting." ;
exit 1 ;}
fi
비슷한 결과가 나옵니다.
.
누군가 여기서 무엇이 사용되었는지 자세히 설명해 주시겠습니까?
foo.txt에 스크립트를 작성하면 .
단순히 파일이 존재하는지 확인하는 것이 아니라 파일이 실행되기 때문에 해당 스크립트가 실행될 수 있습니까? 그리고 $scriptdir/foo.txt
그것이 존재하고 실행 가능한 한 , ||
왼쪽 절반은 종료 상태 0을 반환하기 때문에 오른쪽 절반은 절대 실행되지 않습니다.
답변1
.
와 동일한 bash 내장 명령이며 source
해당 기능은 현재 쉘의 FILENAME에서 명령을 읽고 실행하는 것입니다. 전체 문서를 보려면 터미널 help .
또는 을 입력하세요 . 전체 문서: help source
.: . filename [arguments]
Execute commands from a file in the current shell.
Read and execute commands from FILENAME in the current shell. The
entries in $PATH are used to find the directory containing FILENAME.
If any ARGUMENTS are supplied, they become the positional parameters
when FILENAME is executed.
Exit Status:
Returns the status of the last command executed in FILENAME; fails if
FILENAME cannot be read.