2010-10-06 106 views
3

我正在写我的第一个bash脚本,所以请原谅这个noobie-ness。腻子关闭执行bash脚本

这就是所谓的hello.bash,而这也正是它包含:

#!/bin/bash 
echo Hello World 

我做

chmod 700 hello.bash 

给自己的权限来执行。

现在,当我输入

exec hello.bash 

我腻子终端立即关闭。我究竟做错了什么?

+4

'exec'用指定进程(打印“Hello World”的bash脚本)替换当前进程(您的登录shell)。一旦hello世界脚本完成后,您就没有登录shell,并且您不在那里。试试'。/ hello.bash'而不是'exec hello.bash'。 – msandiford 2010-10-06 02:28:59

+0

@spong - 多数民众赞成真的,你应该把它作为一个! – 2011-06-27 10:54:40

回答

11

man page查找exec:

如果提供命令,它取代了壳而不创建新过程。如果没有指定命令,重定向可能会影响当前的shell环境。

所以你的脚本进程运行在你的终端的位置,当它退出时,你的终端也是如此。只需执行它:

./hello.bash 
+0

谢谢,你的第二个命令工作 – xbonez 2010-10-06 02:34:07