回答
. name
将源文件称为name
放入当前shell。所以,如果一个文件中包含该
A=hello
然后,如果你来源,事后你可以参考一个叫A
变量,它包含你好。但是,如果你执行该文件(给予适当的执行权限和#!/interpreter
线),那么这样的事情是行不通的,因为变量和其他的东西,剧本集将仅影响其子shell它在运行。
采购一个二进制文件没有任何意义:Shell不会知道如何解释二进制文件(记住它将该文件中出现的东西插入到当前shell中 - 就像C中旧的#include <file>
机制一样)。例如:
head -c 10 /dev/urandom > foo.sh; . foo.sh # don't do this at home!
bash: �ǻD$�/�: file or directory not found
执行的二进制文件,但是,并做当然有很大的意义。所以通常你只想命名你想要执行的文件,在特殊情况下,比如上面的A=hello
,你想要一个文件。
使用 “source
” 或 “.
” 导致的命令在当前的进程中运行。将脚本作为可执行文件运行会为其提供自己的进程。
如果你想设置在当前的shell(你不能在一个单独的进程做的)环境变量或要中止脚本不中断你的shell(您可以在一个只有做这个最重要单独的过程)。
该流程的区别为我澄清了一切。 – Kvass 2013-12-18 17:37:25
第一个执行命令。第二个是在另一个脚本中包含shell脚本的简写。
此语法用于“加载”并解析脚本。当你有一个脚本与一堆其他脚本有共同的功能时,它是非常有用的,你可以“点包含”它。有关详细信息,请参阅http://tldp.org/LDP/abs/html/internal.html(向下滚动到“点”命令)。
运行“runme”会创建一个新的进程,它将以很小的方式进行并且不会影响你的shell。
运行“。runme”将允许脚本“runme”更改您的环境变量,更改目录以及您可能希望为其执行的各种其他操作。它只能这样做,因为它正在被已经为你运行的shell进程解释。因此,如果您将bash作为登录shell运行,则只能使用“。”。带有bash脚本的符号,而不是(例如)C shell脚本中的二进制文件。
- 1. Unix dot命令
- 2. Unix cat -n命令执行
- 3. 如何为Unix命令行执行“ - ”* 60
- 4. Flex ant mxmlc命令vs执行命令
- 5. AIX(vs)Unix命令
- 6. 一次执行多个unix命令
- 7. hoew我执行这些Unix命令
- 8. 在unix中粘贴执行命令
- 9. 使用ssh执行Unix命令列表
- 10. UNIX中执行的命令C
- 11. 在Groovy中执行Unix cat命令?
- 12. 从python代码执行Unix命令
- 13. 在hive脚本中执行unix命令
- 14. 用流星执行unix命令
- 15. 在ObjC中执行unix命令
- 16. 使用Java执行UNIX命令
- 17. 使用python执行多个Unix命令
- 18. 使用fork执行UNIX命令,执行execvp
- 19. 任何获取最近执行命令结果的unix命令?
- 20. vs Addin失败,试图执行命令
- 21. 执行命令
- 22. 执行命令
- 23. 执行命令
- 24. PHP执行vs在linux终端执行相同的命令
- 25. 如何在java中执行unix命令或unix操作
- 26. 从Django运行unix命令
- 27. 从NSIS执行命令行命令
- 28. 命令行命令的执行时间
- 29. 从命令行执行Django Shell命令
- 30. 从Python执行命令行命令
如果我在PuTTy终端中执行第二个操作,它会关闭... – schnaader 2009-05-28 19:10:44
相关:http://superuser.com/questions/176783/what-is-the-difference-between-executing-a-bash-script -and-sourcing-a-bash-scrip/176788#176788 – lesmana 2011-12-04 18:34:53