我编写了一个脚本,该脚本将一个字符串作为参数,该字符串是用户名和项目的串联。该脚本应该根据项目字符串切换 (su) 到用户名,cd 到特定目录。
我基本上想做的是:
su $USERNAME;
cd /home/$USERNAME/$PROJECT;
svn update;
问题是一旦我做了一个 su... 它就在那里等着。这是有道理的,因为执行流程已经转移到切换到用户。一旦我退出,其余的事情就会执行,但它不会按预期工作。
我在 svn 命令前添加了 su 但命令失败(即它没有更新所需目录中的 svn)。
如何编写允许用户切换用户并调用 svn(以及其他)的脚本?
最佳答案
更简单:使用 sudo
运行 shell 并使用 heredoc向它提供命令。
#!/usr/bin/env bash
whoami
sudo -i -u someuser bash << EOF
echo "In"
whoami
EOF
echo "Out"
whoami
关于bash - 我如何使用 su 作为该用户执行 bash 脚本的其余部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1988249/