command
이를 위해서는 플래그가 필요하다고 가정합니다 --flag
. 해당 값이 환경 변수로 제공되는 경우에만 이 플래그를 삽입하려고 합니다 VALUE
.
나는 다음을 시도했다:
echo "command ${X+--flag ${VALUE}}"
VALUE=1
echo "command ${X+--flag ${VALUE}}"'
인용하다:
답변1
command ${VALUE:+--flag "$VALUE"}
변수가 정의되고 null이 아닌 경우 command
옵션 --flag
과 해당 옵션 인수를 사용하여 실행됩니다. 변수가 비어 있거나 정의되지 않은 경우 인수 없이 실행됩니다."$VALUE"
VALUE
command
zsh
셸 에서는 따옴표가 없는 확장 시 토큰화가 수행되지 않으므로 SH_WORD_SPLIT
셸 옵션( )을 설정하거나 호환 모드( )에서 셸을 실행하거나 setopt SH_WORD_SPLIT
다음을 사용해야 합니다.sh
zsh --emulate sh
command ${=VALUE:+--flag "$VALUE"}
...null이 아닌 값으로 설정되고 두 개의 별도 인수로 전달되는 것을 보장 --flag
합니다 "$VALUE"
.VALUE
정의되었지만 비어 있는 옵션을 추가하려면 :
매개변수 대체를 제거하십시오.--flag
VALUE