Bash命令${ctp// /}作用咨询及空/全空格变量判断需求
关于Bash命令
${ctp// /} 的作用及你的需求实现 1. ${ctp// /} 的作用
这是Bash的参数展开语法,核心功能是删除变量ctp中的所有普通空格字符:
- 若
ctp的值是" foo bar ",处理后会变成"foobar" - 若
ctp全是空格(比如" "),处理后会变成空字符串"" - 若
ctp本身就是空字符串,处理后仍为空字符串
2. 判断变量为空/全空格并分配默认值的实现
针对你要给空或全空格的ctp分配默认值的需求,结合上述替换语法,有几种实用实现方式:
方式一:分步处理(可读性高)
# 先移除变量里的所有空格 trimmed_ctp="${ctp// /}" # 判断处理后的变量是否为空,是则赋值默认值 if [[ -z "$trimmed_ctp" ]]; then ctp="你的默认值" fi
方式二:一行嵌套展开(简洁,需Bash 4.0及以上版本支持)
# 先移除所有空格,再判断是否为空,为空则用默认值 ctp="${${ctp// /}:-你的默认值}"
扩展:处理所有空白字符(含制表符、换行)
如果需要同时处理空格之外的空白字符(比如Tab、换行),可以用[[:space:]]匹配所有空白类字符:
trimmed_ctp="${ctp//[[:space:]]/}" if [[ -z "$trimmed_ctp" ]]; then ctp="你的默认值" fi
内容的提问来源于stack exchange,提问作者Dilna
相关产品推荐
相关产品推荐

