gtar가 정의된 경우 tar 대신 gtar를 사용하고 싶습니다.
if command -v gtar; then
gtar --exclude-ignore='.deployignore' -cf /dev/stdout . | aws s3 cp - "$arti_fact"
else
tar --exclude-ignore='.deployignore' -cf /dev/stdout . | aws s3 cp - "$arti_fact"
fi
그러나 DRY에 관한 한 그것은 죄악입니다. 동일한 매개변수를 사용하여 조건부로 다른 명령을 실행하는 방법이 있습니까?
답변1
사용하려는 명령을 변수에 저장할 수 있습니다.
tar=tar
if command -v gtar; then tar=gtar; fi
"$tar" --exclude-ignore='.deployignore' -cf /dev/stdout . | aws s3 cp - "$arti_fact"