我正在尝试使用 bash 脚本删除该值或替换 .env 文件中的值
在我的 .env 文件中
TEST_VAR=testVariable
Run Code Online (Sandbox Code Playgroud)
我已使用以下脚本使用 bash 脚本插入了此 TEST_VAR
#!/bin/bash
echo TEST_VAR="testVariable" >> .env
Run Code Online (Sandbox Code Playgroud)
问题是,如果我再次运行 bash 脚本,它将在 .env 中多次输入 TEST_VAR 。我如何替换该值或删除该密钥对值。
例如
如果我再次运行具有更改值的 bash 脚本
#!/bin/bash
echo TEST_VAR="updateValue" >> .env
Run Code Online (Sandbox Code Playgroud)
它应该显示在 .env 文件中
TEST_VAR=更新值
而不是低于
TEST_VAR=测试变量 TEST_VAR=更新值
尝试一下,假设您要更新的 .env 是file.env
:
sed -i~ '/^TEST_VAR=/s/=.*/="UpdateValue"/' file.env
Run Code Online (Sandbox Code Playgroud)
说明:该命令sed -i~
能够就地编辑文件;即无需复印。文件的旧版本将转到file.env~
.
该命令s/=.*/="UpdateValue"/
更改=
to之后的所有内容="UpdateValue"
。该命令仅适用于以 开头的行,该行是通过在上面的命令前TEST_VAR=
添加正则表达式来表达的。/^TEST_VAR=/
sed