Bash脚本问题:Git命令获取的变量值无法写入HTML文件
问题解决:Git命令输出赋值给Bash变量后无法写入HTML文件
问题根源
你的代码里变量赋值存在两个关键错误:
- Bash变量赋值时,
=两边绝对不能有空格,原代码中revision_number= git rev-parse --short HEAD的空格会导致revision_number被当作临时环境变量传递给git命令,而非赋值给该变量。 - 要捕获命令的输出并赋值给变量,必须使用命令替换语法(
$(命令)或`命令`),直接跟命令不会把输出存入变量。
另外你提到git show -s --format=%B $revision_number能正常运行,是因为当$revision_number为空时,git show默认会操作当前HEAD提交,并非变量实际起了作用。
修正后的代码
#!/bin/bash echo "Obtaining Revision Number" cd /path/to/project/ # 用$(...)捕获命令输出,且=两边无空格 revision_number=$(git rev-parse --short HEAD) cat > /path/to/myFile/file.html << EOF The revision number is "${revision_number}" EOF
验证说明
修正后,revision_number会正确获取git rev-parse --short HEAD的输出值,写入HTML文件时就能正常显示版本号。静态赋值能正常工作,正是因为遵循了=无空格的赋值规则。
内容的提问来源于stack exchange,提问作者Saurav Dangol
相关产品推荐
相关产品推荐

