如何作为特定用户运行一行bashshell脚本

如何作为特定用户运行一行bashshell脚本,bash,shell,sudo,Bash,Shell,Sudo,我有一个手动运行的脚本(比方说)mylogin。但是有一行需要作为用户postgres运行 这样做的好方法是什么 如果我得到一个密码提示就可以了。我只是想让它发挥作用 这是我到目前为止所拥有的 ~/reload\u test\u data.sh #!/bin/bash # Here's the part that needs to run as user `postgres`... sudo su postgres export PGDATA=/Library/PostgreSQL/9.4/

我有一个手动运行的脚本(比方说)
mylogin
。但是有一行需要作为用户
postgres
运行

这样做的好方法是什么

如果我得到一个密码提示就可以了。我只是想让它发挥作用

这是我到目前为止所拥有的

~/reload\u test\u data.sh

#!/bin/bash

# Here's the part that needs to run as user `postgres`...

sudo su postgres
export PGDATA=/Library/PostgreSQL/9.4/data && pg_ctl -m fast restart

# And here we should go back to `mylogin`...

cd ~/projects/my_project
echo 'Dropping database'
bundle exec rake db:drop

# More stuff etc...

我使用的是Mac OS 10.12.1。

sudo的一个参数是命令,因此您可以执行以下操作:

sudo-u bash-c“命令1;命令2;等”


其中,
-u
更改为目标用户

sudo的一个参数是命令,因此您可以执行以下操作:

sudo-u bash-c“命令1;命令2;等”


其中
-u
更改为您的目标用户

非常好。谢谢,太好了。谢谢