2014-02-24 32 views
1

运行的问题:击命令在顺序

的命令数,必须因此执行,写在一个行命令:

comamand1; command2; command3; 

的非常第一个命令是

sw user_name; 

问题是在sw user_name之后没有执行任何命令; one。 (用户可以更改)

有关如何执行上述命令字符串的任何想法? enter image description here

P.S.

bash-3.2$ sw 
Sorry, user ehwe is not allowed to execute '/bin/su -' as root on server_name 

猜猜它解释了SW是什么:)

PPS SW代表/斌/苏 -

+1

'sw'?这个命令应该做什么?你不是想用'su'吗? – fedorqui

+0

tbh我不知道为什么,但它改变了用户(见更新) – Dennis

+1

'sw'几乎肯定会启动一个新的交互式shell,因此序列中的下一个命令将不会运行,直到该shell退出。 – chepner

回答

5

希望你的意思是 “苏”,而不是 “SW” 。如果您想切换为某个用户并执行一组命令,则可以使用-c选项。你可以尝试像这样su - chidori -c "date;ls;df"

+0

bash- 3.2 $ sw upstream_mdm -c“date; ls;” - > 对不起,用户ehwe不允许执行'/ bin/su - upstream_mdm -c date; ls;'作为根server_name – Dennis

+0

猜测它是一个权限问题-_- – Dennis

0

这听起来像sw可能是某种别名su。您可以检查alias sw。如果是这种情况,你可以使用chidori的答案,只需用sw代替su即可。

+0

bash:别名:sw:找不到 – Dennis

+0

如果你尝试'哪个sw',那么'ls -l'那个文件? – RKG

+1

'type sw' /'declare -f sw' ... – anishsane

0

您不能更改给定进程的用户;您只能启动一个以新用户身份运行的新进程。因此,sw可能正在启动一个新的交互式shell。当该shell退出时,sw命令完成,并且序列中的下一个命令可以完成。例如:

$ sw user_name; echo "Second command executes" 
$ echo hello 
hello 
$ exit 
Second command executes 
+0

有没有办法在user_name用户下运行echo命令? – Dennis

+0

如果'sw'与'su'类似,请参阅@ chidori的答案。 – chepner