Shell脚本读取文件内容到变量出现bad substitution错误求助
问题分析与解决
你出错的原因是误用了Bash语法:${cat ...}属于变量替换语法,仅用于处理变量的扩展、修改等操作,无法执行外部命令并捕获其输出。要实现读取文件内容到变量的需求,必须使用命令替换语法。
正确写法
推荐使用$()(相比反引号可读性更强,且支持命令嵌套):
almvers=$(cat "$CI_PROJECT_DIR/pom-almversion.txt")
也可以使用老式的反引号写法(不推荐用于嵌套场景):
almvers=`cat "$CI_PROJECT_DIR/pom-almversion.txt"`
额外提示
给$CI_PROJECT_DIR加上双引号是良好实践,能避免路径中包含空格、特殊字符时出现解析错误。
内容的提问来源于stack exchange,提问作者nvplus
相关产品推荐
相关产品推荐

