Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果它不存在,我正在尝试找到将后缀添加到字符串(在 bash 中)的最佳方法。
我首先想到了这个:
case "$R" in *.git ) ;; * ) R=$R.git ;; esac
哪个有效。但是很麻烦。
然后想到了这个:
R=${R%.git}.git
这很好,紧凑而整洁。
还有其他选择吗?有什么我应该注意的问题吗?
[[ $r == *.git ]] || r+=.git
将是我的首选方法。
shopt -s extglob case $r in !(*.git)) r+=.git; esac
可能是更好的case方法。如果确定R已设置且不为空,则您的第二种方法可能已经足够好了。其他可能性包括:
case
R
${r:+'declare'} r="${r%.git}.git" r=${r%.git}.git ${r:+'true'}
对于 POSIX sh,您的任何一种方式都可以,但您应该考虑不使用全大写的变量名。