我有两个shell脚本:运行内的另一个shell脚本的shell脚本不同的用户
one.sh
echo "hello"
su - oracle -c "sh /tmp/two.sh"
echo "good bye"
two.sh
echo "bla bla bla"
我想以“root”身份运行“one.sh”并查看此输出:
hello
bla bla bla
good bye
这怎么可能?
我有两个shell脚本:运行内的另一个shell脚本的shell脚本不同的用户
one.sh
echo "hello"
su - oracle -c "sh /tmp/two.sh"
echo "good bye"
two.sh
echo "bla bla bla"
我想以“root”身份运行“one.sh”并查看此输出:
hello
bla bla bla
good bye
这怎么可能?
首先将chmod +x
设置为您的脚本
尝试:
echo "hello"
su - oracle -c /tmp/two.sh
echo "good bye"
要登录,从bash脚本其他用户
从根用户登录到oracle用户时,我不需要密码。 – AloneInTheDark
好的,你是如何看到我答案部分的顶部的? – MLSC
是的,这个工作现在。 – AloneInTheDark
在行
su - oracle -c "sh two.sh"
解释不知道文件 “two.sh” 的路径。
尝试使用绝对路径...(例如,SH /tmp/two.sh “)
这样:
[email protected]:/tmp# ./one.sh
hello
bla bla bla
good bye
UPDATE
也请检查” sh“可以通过oracle用户找到...否则,为”sh“指定绝对路径...
我已经试过这种方式,但没有奏效。对于在问题中不提及它,我也感到抱歉。我编辑它。 我的问题是,当我运行这个脚本时,我无法在控制台中看到“bla bla bla”。 – AloneInTheDark
奇怪的是,它在为我工作... – MarcoS
很明显,shell中的注释应以“#”开头,“//此命令不会显示任何输出”是非法注释,会产生语法错误... :-) – MarcoS
? – MLSC
是的,也想从那里得到输出。 – AloneInTheDark
尝试:'su - oracle -c/tmp/two.sh'告诉输出结果是什么 – MLSC