在引用的环境变量new lin中读取

2024-07-03 06:53:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要读入一个必须在导出时引用的env变量

export ENV_QUOTES="cat\nhat" # This is actually a rsa private key
export ENV_NO_QUOTES=cat\nhat

当我在引用的env var中读取时,它不注册转义的换行符:

^{pr2}$

输出:

0 c c
1 a a
2 t t
3 n \
4 h n
5 a h
6 t a

如何让python识别引用的env变量的新行?实际输出print私钥如下:

# Non quoted
-----BEGIN PRIVATE KEY-----
ffaffdsafsdeeekqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCltThZlt88aAn8
f2MlQsV4Nv9TEhBj8WUypfGc148FedpTRraNyE3f9bZ4u4MJC34vI9zuqf5hNrX+
+w+eYrPJwbS4CvA3Ww2znjCfKK4u3n3P522LTGNxAoGBAK5AA0twCSifwIPIlIsZ
psGtFIEJpc6sJ4+LgVzTW/5EwreMHMnx3tQTaVi6pVIJTqjaMJp5SAAUlPrl5zZM
gsVgtwyXMMqlKNt9wMdBH+ir7oJsppC+DjIRbpCa8U6nEG4Wij5qVeRJ8DVV8NAM
C5Tc+6qgzVZRaXXkCStZA/PK
    -----END PRIVATE KEY-----

    # Quoted
-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCltThZlt88aAn8\nf2MlQsV4Nv9TEhBj8WUypfGc148FedpTRraNyE3f9bZ4u4MJC34vI9zuqf5hNrX+\nW+UfXJkPLfemupraI5sTWyFCwX7ZYOd5I7vyRoqSii4MHCXlg8zWySrjwirwou87\nn18zSyA30fu3kuHBDlHFnRVw+Ag+M/XjesRcz5Q+KQ9o/MnpcZcYQ7sZU5GntqCw\n3ZNgb68Cla87jbhvlkjfdN77IcLJypuwCMZeyHeQYNtgxLyE0o2Te5ddAjvD59uS\nML69iuQqpvPjpuBgZnReKX3oZusU/o6qgzVZRaXXkCStZA/PK\n-----END PRIVATE KEY-----\n

Tags: keyenvisexportprivatethisrsacat
1条回答
网友
1楼 · 发布于 2024-07-03 06:53:18

如果不能更改shell脚本,将输入赋值为正确包含换行文字(这是更好的方法!),您只需在Python中使用string.sub()r'\n'(这是变量实际包含的内容)替换为'\n'(这是您想要的):

env_var = os.environ['ENV_QUOTES'].replace(r'\n', '\n')

也就是说,在外壳方面,考虑:

^{pr2}$

……或者。。。在

# in any POSIX shell
orig_shell_var='cat\nhat'                 # two characters, '\' then 'n'
printf -v ENV_QUOTES %b "$orig_shell_var" # evaluated as format string, now has newline
export ENV_QUOTES

相关问题 更多 >