Bash
如何有條件地執行具有相同參數的不同命令
如果定義了 gtar,我想使用它,而不是 tar:
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 而言,這是有罪的。有沒有辦法有條件地執行具有相同參數的不同命令?
您可以將要使用的命令儲存在變數中:
tar=tar if command -v gtar; then tar=gtar; fi "$tar" --exclude-ignore='.deployignore' -cf /dev/stdout . | aws s3 cp - "$arti_fact"