【问题标题】:Bash Script su exiting shellBash 脚本 su 退出 shell
【发布时间】:2012-01-19 14:10:51
【问题描述】:

我正在尝试编写一个 bash 脚本,该脚本以不同的用户身份执行多个命令以自动化安装过程。

在某一时刻我有

su gpadmin
gpperfmon_install --enable --password password --port 5432
y  
gpstar
y 

su gpadmin 以 root 身份运行,一旦运行,脚本就会停止,直到我退出 gpadmin 并以 root 身份返回。

如何在不停止脚本的情况下切换到新用户?

对不起,我的无知,我试图用谷歌搜索但没有找到任何有用的东西。 任何帮助将不胜感激。

【问题讨论】:

    标签: bash shell su


    【解决方案1】:

    您需要使用 -c 选项来 su 以便它运行命令然后退出。使用您为 su 提供的选项,它将运行 gpadmin 的默认 shell,该 shell 将一直阻塞,直到 shell 退出。从您已经拥有的代码来看,gpperfmon_install 似乎是一个交互式应用程序,这是另一个问题。有时您可以使用此处的文档,但在其他情况下您需要使用expect

    su gpadmin -c 'gpperfmon_install --enable --password password --port 5432 << EOF
    y
    gpstar
    y
    EOF'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-23
      • 2011-02-21
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 2017-12-03
      相关资源
      最近更新 更多