如果它还不存在,我正在尝试找到将字符串(在bash中)添加后缀的最佳方法。
我首先提出了这个问题:
case "$R" in
*.git ) ;;
* ) R=$R.git ;;
esac
哪个有效。但是很麻烦。
然后想了想:
R=${R%.git}.git
这很好,紧凑,整洁。
还有其他选择吗?我应该注意哪些问题?
答案 0 :(得分:2)
[[ $r == *.git ]] || r+=.git
将是我首选的方法。
shopt -s extglob
case $r in !(*.git)) r+=.git; esac
可能是更好的特定于bash的case
方法。
如果您可以保证R
已设置且不为空,那么您的第二种方法可能已经足够了。
${r:+declare r=${r%.git}.git}
将是一个有趣的解决方法。对于POSIX sh,你可以选择其中任何一种方法,但你应该考虑不使用全大写变量名。