date
제공된 변수에 no/null 값이 있는 경우 명령은 어떻게 비어 있거나 내용이 없는 내용을 출력할 수 있습니까? 나는 if else
성명이 이것을 할 수 있다는 것을 알고 있지만 그것이 그것을 하는 올바른 방법이라고 생각하지 않습니다. 이를 수행하는 데 적합한 명령이나 명령 변경이 있습니까 date
?
예를 들어
myDay=""
bDay=`date -d "$myDay"`
echo "$bDay" // this should have no output
답변1
다음을 수행할 수 있습니다.
bDay=${myDay:+$(date -d "$myday")}
또는:
if [ -n "$myDay" ]; then
bDay=$(date -d "$myDay")
else
bDay=
fi
또는:
bDay=$([ -z "$myDay" ] || date -d "$myDay")
또는 (비어 있으면 오류 메시지 표시 $myDay
):
bDay=$(date -d "${myDay:?no date supplied}")
( s echo
제외 ) 인수가 전달되지 않은 경우에도 (구현을 사용 하거나 구현 에 의존 하지 않는 한) 항상 하나 이상의 줄 바꿈을 출력하므로 다음 사항도 필요합니다.csh
echo
-n
\c
echo
[ -z "$bDay" ] || echo "$bDay"
$bDay
비어 있으면 아무것도 출력되지 않습니다.