세 가지 진술을 하나로 결합하는 방법은 무엇입니까?

세 가지 진술을 하나로 결합하는 방법은 무엇입니까?

새로운 .sh 스크립트를 생성해야 합니다. 그릴 수 있는 몇 가지 예가 있지만 더 잘하고 싶습니다.

나는 다음과 같은 것을 본다 :

date -d $date | grep "Fri"
$status=$?
if [ ${status} == 0 ]; then

이 효과를 얻기 위해 이 조각을 한 줄로 축소하는 것이 가능합니까?

if [ date -d $date | grep "Fri" = 0 ]; then

나는 그것이 중복된다는 것을 알고 있기 때문에 이중 "="를 제거했습니다.

ベストアンサー1

파이프라인에서 마지막 명령의 종료 상태를 직접 테스트하면 됩니다.

if date -d "$date" | grep -F "Fri"
then
fi

$date쉘이 실수로 변수를 분할/글로브하는 것을 방지하기 위해 변수를 큰따옴표로 묶었습니다 . grep -F정규식을 사용하지 않고 직접 문자열 일치를 사용했습니다 .

grep그러나 요일을 전혀 알려주지 않고 요구함으로써 로케일 독립적인 방식으로 이 특정 예제를 직접 작성할 수도 있습니다.date

if [ "$(date -d "$date" +'%w')" -eq 5 ]
then
fi

おすすめ記事