如何在Shell脚本中使用Sed更新Python变量table_name的值
正确的sed命令写法
要正确替换Python文件中table_name变量的值,你可以使用以下两种可行的sed命令:
写法一:双引号包裹整个命令(需转义内部双引号)
sed -i "s/table_name = \".*\"/table_name = \"${ENV_NAME}_ref_table\"/" /src/utils/abc.py
写法二:单引号+双引号拼接(避免转义,可读性更强)
sed -i 's/table_name = ".*"/table_name = "'"${ENV_NAME}_ref_table"'"/' /src/utils/abc.py
原命令的问题点:
- 目标值拼写错误:需求是
$ENV_NAME_ref_table,但你写的是$ENV_NAME_reference,后缀多了一个e - 双引号转义问题:在双引号包裹的sed命令中,内部的双引号需要用反斜杠
\转义,否则shell会解析出错 - 变量引用不严谨:用
${ENV_NAME}替代$ENV_NAME,可以避免和后面的下划线混淆,防止shell误将$ENV_NAME_ref_table识别为一个未定义的变量名
内容的提问来源于stack exchange,提问作者Codistan
相关产品推荐
相关产品推荐

