gpt4 book ai didi

bash - 当我 cat 文件时获取变量替换

转载 作者:行者123 更新时间:2023-11-29 09:26:48 27 4
gpt4 key购买 nike

当我 cat 一个文件时,是否有可能以一种干净的方式获取变量值,而不是文件中写入的变量名。这很难解释,但这里有一个简单的例子:

$ cat <<EOF
$HOME
EOF
/home/myself

cat 返回/home/myself 因为它已经被 shell 扩展了。

$ echo \$HOME >/tmp/home
$ cat /tmp/home
$HOME

cat 只是读取文件,我希望 $HOME 在这里被 cat 以某种方式扩展,因为文件将包含变量名(不像 HOME=/home/myself)

我的问题是这是否可能,否则我将不得不编写一些肮脏的代码。

编辑:它们是包含

<checkbox active="$value">

对或错

最佳答案

这在 Python 中尝试是微不足道的,看看它是否适合你。你可以使用 re.sub函数来替换所有出现的某些模式,例如 "\$\w+",方法是调用执行转换的函数(而不是用特定的字符串来替换它)。对于替换函数,您可以使用 os.getenv(),它当然需要一个变量名并返回它的值。

编辑:这是执行上述操作的完整 Python 脚本:

#!/usr/bin/python

import fileinput
import os
import re

def transform(match):
return os.getenv(match.group(1)) # replace the "capture" to omit $

for line in fileinput.input(): # reads from stdin or from a file in argv
print re.sub('\$(\w+)', transform, line), # comma to omit newline

关于bash - 当我 cat 文件时获取变量替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6025342/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com