새로운 .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