제공된 변수에 null 값이 있는 경우 Date 명령은 null/nothing을 출력합니다.

제공된 변수에 null 값이 있는 경우 Date 명령은 null/nothing을 출력합니다.

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제외 ) 인수가 전달되지 않은 경우에도 (구현을 사용 하거나 구현 에 의존 하지 않는 한) 항상 하나 이상의 줄 바꿈을 출력하므로 다음 사항도 필요합니다.cshecho-n\cecho

[ -z "$bDay" ] || echo "$bDay"

$bDay비어 있으면 아무것도 출력되지 않습니다.

관련 정보