변수가 비어 있으면 하이픈을 인쇄하는 방법은 무엇입니까?

변수가 비어 있으면 하이픈을 인쇄하는 방법은 무엇입니까?

wmicLinux 시스템에서 Windows 시스템을 사용하여 정보를 수집하고 있습니다 . 이를 위해 다양한 wmic호출을 수행하고 해당 출력을 일부 변수에 저장합니다. 필요한 데이터를 수집한 후 echo이러한 변수(콜론으로 구분)를 파일에 저장합니다.

그러나 변수가 "빈" 값을 저장할 때 문제가 발생합니다. 두 개의 연속 콜론만 표시하고 아무 것도 표시하지 않기 때문입니다.

변수에 null 값이 저장되어 있는 경우 printf"하이픈"을 표시하려면 어떻게 해야 합니까?

답변1

다음 구문을 사용할 수 있습니다.

"${var:-word}"

$var이는 변수의 값이 설정되어 있고 비어 있지 않은 경우 또는 if not 에 의해 제공된 값으로 대체됩니다 word. 예를 들어:

$ var=foo
$ echo "${var:-bar}"
foo
$ var=
$ echo "${var:-bar}"
bar

따라서 특정 상황에 따라 다음을 사용할 수 있습니다.

echo "${var:--}"

또는더욱 안전하고 휴대성이 향상되었습니다.:

printf '%s\n' "${var:--}"

관련 정보