我想这些命令作为root
用户的ss
用户运行
mkdir bin cp -r /opt/gitolite . gitolite/install -ln gitolite setup -pk ss.pub mkdir -p .gitolite/hooks/common ln -s /opt/pre-receive .gitolite/hooks/common/
所以一切都在/home/ss
执行。 第四行需要$HOME/bin
,你可以从第三行看到。
唯一的办法就是让每一行都加上su -c "command" ss
,这不是一件好事。
这是我以前的问题的一个扩展,我不够精确。
题
如何以实际的方式将所有这些命令作为脚本运行?
为什么不让它成为一个真正的可执行脚本,并通过su
作为另一个用户运行时调用脚本
一个shell脚本就是一个shell脚本。 这意味着你不仅可以运行普通的shell命令,还可以为你正在使用的任何shell执行内置的命令。 我们可以稍微修改你的脚本,让所有的命令运行,就好像在用户运行这个脚本的主目录中一样。
#!/bin/bash cd $HOME mkdir bin cp -r /opt/gitolite . gitolite/install -ln gitolite setup -pk ss.pub mkdir -p .gitolite/hooks/common ln -s /opt/pre-receive .gitolite/hooks/common/