2004. 7. 18. 22:01
기술문서창고/리눅스 프로그래밍
리스트
and 리스트 구조 - 이전의 모든 명령이 성공적이었다면 다음 명령을 실행하며 일련의 명령을 실행하게 해준다.
or 리스트 구조 - 하나의 명령이 성공할 때까지 일련의 명령을 실행
테스트가 성공적이면 전자를, 실패하면 후자를 실행
and나 or 리스트에서 다음과 같이 한 문장이 허용되는 경우에 여러 문장을 사용하기 원한다면 문장 블록을 만들기 위해 중괄호{}에 문장을 포함시킬 수 있다.
and 리스트 구조 - 이전의 모든 명령이 성공적이었다면 다음 명령을 실행하며 일련의 명령을 실행하게 해준다.
statement1 && statement2 && ...
각 문장은 왼쪽에서부터 실행되고, 이것이 true를 반환하면 오른쪽 다음 문장이 실행도니다. 이런 과정이 false를 반환할 때까지 계속된다. &&는 이전 명령의 조건을 테스트한다.or 리스트 구조 - 하나의 명령이 성공할 때까지 일련의 명령을 실행
statement1 || statement2 || ...
각 문장은 왼쪽에서부터 실행되며 false를 반환하면 오른쪽의 문장이 실행, true를 반환할 때까지 계속되며 true를 반환하면 멈추게 된다.[CODE]#!/bin/sh
# and list
touch file_one
rm -f file_two
if [ -f file_one ] && echo "hello" && [ -f file_two ] && echo " there"
then
echo "in if"
else
echo "in else"
fi
# or list
rm -f file_one
if [ -f file_one ] || echo "hello" || echo " there" ; then
echo "in if"
else
echo "in else"
fi
exit 0[/CODE]
or 리스트 구조에서 결과를 결정하기 위해 최소의 문장들이 실행된다. 이것을 흔히 최단 평가 (short circuit evaluation)이라고 한다.
and 와 or 구조를 결합한 유용한 사용법테스트가 성공적이면 전자를, 실패하면 후자를 실행
[ -f file_one ] && command for true || command for false
문장블록 and나 or 리스트에서 다음과 같이 한 문장이 허용되는 경우에 여러 문장을 사용하기 원한다면 문장 블록을 만들기 위해 중괄호{}에 문장을 포함시킬 수 있다.
get_confirm && {
grep -v "$cdcatnum" $tracks_file > $temp_file
cat $temp_file > $tracks_file
echo
add_record_trakcs
}
grep -v "$cdcatnum" $tracks_file > $temp_file
cat $temp_file > $tracks_file
echo
add_record_trakcs
}