提问人:meh 提问时间:6/28/2023 最后编辑:Paul Hodgesmeh 更新时间:6/29/2023 访问量:46
如何从 linux cli 将 ENV VAR 名称打印到文件,而不是 VALUE
How to print ENV VAR name to file, NOT VALUE from linux cli
问:
我有这个:
cat > ~/add_api_txt_hook.sh <<EOF
#!/bin/bash
...
echo $MY_ENV_VAR
EOF
制作此文件时未设置MY_ENV_VAR。所以它使它在文件中成为“”。
我希望文件内容是
#!/bin/bash
...
echo $MY_ENV_VAR
不:
#!/bin/bash
...
echo ""
如何将实际的 ENV VAR KEY 打印到文件中?我已经搜索了互联网,但它只返回如何将值打印到文件中。
尝试了谷歌和围绕键()、“”、{} 等的各种语法......
答:
2赞
Paul Hodges
6/29/2023
#1
有几种方法可以实现此目的。
显然,正如 SiKing 所指出的,你可以反斜杠转义美元符号。
您也可以引用本身。而EOF
$: cat >x <<EOF
echo $PATH
EOF
将 的值(包括为空,如您的情况下)放在文件中,$PATH
$: cat >x <<'EOF'
echo $PATH
EOF
不:
$: cat x
echo $PATH
同样,您可以使用“here-string”:
$: cat <<<'echo $PATH'
echo $PATH
但请注意,无论使用单引号还是双引号,here-doc 的行为都大致相同 -
$: cat <<"EOF"
echo $PATH
EOF
echo $PATH
here-strings 区分;单引号不会扩展变量,但双精度号可以。
$: cat <<<"echo $PATH"
echo /c/Users/....(redacted)
评论
echo \$MY_ENV_VAR