Shell 规定没有 运行 sed 命令

Shell provision doesn't run sed command

我想 运行 下面的 2 个命令使终端丰富多彩。它们在终端上工作,但在 shell 脚本中不工作。

bootstrap.sh:

#!/usr/bin/env bash

sed -i "s/#force_color_prompt=yes/force_color_prompt=yes/g" ~/.bashrc
. ~/.bashrc  

如果我在末尾附加 apt-get update,则只会执行 apt-get update。

[Vagrant 的 shell 配置器][1] 默认以 privileged = true 运行:

privileged (boolean) - Specifies whether to execute the shell script as a privileged user or not (sudo). By default this is "true".

当您执行 vagrant ssh 时,您以 vagrant 用户身份登录到 VM。

这就是为什么:

sed -i "s/#force_color_prompt=yes/force_color_prompt=yes/g" ~/.bashrc

root's ~/.bashrc 中做了更改。

解决方法:执行sedvagrant's主文件夹的.bashrc

sed -i "s/#force_color_prompt=yes/force_color_prompt=yes/g" /home/vagrant/.bashrc

你的最终 bootstrap.sh 是:

#!/usr/bin/env bash

sed -i "s/#force_color_prompt=yes/force_color_prompt=yes/g" /home/vagrant/.bashrc
. /home/vagrant/.bashrc