如果定义了 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 而言,这是有罪的。有没有办法有条件地使用相同的参数运行不同的命令?
答案1
您可以将要使用的命令存储在变量中:
tar=tar
if command -v gtar; then tar=gtar; fi
"$tar" --exclude-ignore='.deployignore' -cf /dev/stdout . | aws s3 cp - "$arti_fact"