Linux와 커맨드 라인 기초
if [ -f "$f" ]; then
echo "found"
fi셸 스크립트에서 위의 if 조건이 참이 되는 경우로 올바른 것은?
- A변수 f에 든 이름의 일반 파일이 존재하는 경우
- B변수 f에 든 이름의 파일이 존재하고, 크기가 0보다 큰 경우
- C변수 f에 든 이름의 파일이나 디렉터리가 존재하는 경우
정답과 해설 보기
정답: A. 변수 f에 든 이름의 일반 파일이 존재하는 경우
[ ]는 test 명령의 다른 표기로, 조건이 성립하면 종료 상태 0(참)을 돌려주며, if는 그것을 보고 분기합니다. -f는 '그 이름의 일반 파일이 존재한다'는 것을 조사하며, 디렉터리인 경우에는 거짓이 됩니다. 존재하는지만 볼 때는 -e, 디렉터리인지는 -d, 크기가 0보다 큰지는 -s를 사용합니다. [ 뒤와 ] 앞에는 공백이 필요하며, 변수는 "$f"처럼 큰따옴표로 감싸 두면 공백을 포함한 이름이라도 올바르게 조사할 수 있습니다.