在Bash中,可以使用参数展开来处理变量,包括字符串处理、替换、删除等。而从两个方向展开变量可以提供更多的灵活性和实用性。
从左侧展开:
${variable_name:-default_value}
如果变量$variable_name已经定义,则返回它的值,否则返回默认值default_value。
示例:
name="John Doe"
echo ${name:-anonymous} # 输出"John Doe"
unset name
echo ${name:-anonymous} # 输出"anonymous"
从右侧展开:
${variable_name:offset}
截取变量$variable_name从右侧开始的offset个字符。
示例:
filename="file.tar.gz"
echo ${filename:3} # 输出"tar.gz"
echo ${filename: -5} # 输出".tar.gz"(注意空格)
在使用参数展开时,还可以结合其他操作,如组合、截取、替换等,以满足不同场景的需求。