我看到exit 1
shell 脚本中出现“进程完成”消息,导致 shell 无响应。有没有办法使用该exit
命令并返回提示符?我不想打开新会话,但我没有其他方法。
编辑:我使用,但我也.
得到了相同的结果source
答案1
请参见做什么source
?
source
是 bash shell 内置命令,用于执行作为参数传递的文件内容,在当前 shell 中.
。它在(句号)中有一个同义词。
exit
在源脚本中执行 会使当前 shell 退出,就像您输入 一样exit
。要执行源脚本的脚本永远不应是exit
其主 shell(即不是子 shell),因为其主 shell 是您从中执行源脚本的 shell。除非您知道自己在做什么,并且exit
源脚本确实是您想要的。
您可以return
从源脚本中获取。如果您需要获取脚本,那么return 1
可能是正确的选择exit 1
。
不应引用的脚本不应引用。如果它exit
在主 shell 中调用,则很可能是执行. 另一个有用的链接:.
在 bash 中获取文件(或source
)和执行文件有什么区别?
那么如何执行呢?
命令bash scriptname
将运行一个单独的bash
进程,该进程将解析scriptname
并执行其行。如果有,exit
则它将退出单独的进程bash
,而不是您当前的 shell。
为了能够直接执行脚本(例如./scriptname
而不是bash scriptname
),您需要一个适当的shebang作为脚本的第一行,例如:
#!/bin/bash
并且该文件需要是可执行的(chmod +x scriptname
),并且保存该文件的文件系统不能使用noexec
选项挂载。