我能够使用 Ubuntu 中的 shell 脚本以其他用户身份登录,但我想以该用户身份运行 Java 程序,但它在那里暂停了……
例如:
- 以具有有限权限的访客用户身份登录
- 编译HelloWorld.java
- Java HelloWorld.java
我写的脚本:
USER=sameek
su $USER
javac HelloWorld.java echo compiled
请告诉我解决这个问题的方法
答案1
您的脚本的问题在于该su $USER
行调用了一个子shell,因此直到退出该子shell后才会执行下一个命令。
你可能想要做更多类似的事情:
USER=sameek
USERCMDS=/tmp/usercommands.$$
echo "JAVA_HOME=..." >>$USERCMDS
echo "PATH=\${JAVA_HOME}:\$PATH" >> $USERCMDS
echo "javac HelloWorld.java" >> $USERCMDS
chmod a+x $USERCMDS
su $USER -c $USERCMDS