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"