【发布时间】:2009-12-10 12:40:16
【问题描述】:
请告诉我 bash shell 与启动脚本有什么区别
./script.sh 和 . ./script.sh?
【问题讨论】:
请告诉我 bash shell 与启动脚本有什么区别
./script.sh 和 . ./script.sh?
【问题讨论】:
正如 klausbyskov 所说,第一种形式要求文件设置其可执行权限位。
但更重要的是,第一种形式在单独的进程中执行脚本(与启动它的 shell 不同、独立且无法进行更改)。第二种形式使初始 shell 直接运行文件中的命令(就好像您已将它们键入到 shell 中,或者就好像它们包含在执行“采购”的脚本中一样)。
包含FOO=bar; export FOO 的脚本不会在运行第一个变体的shell 中创建导出的FOO 环境变量,但它会在运行第二个变体的shell 中创建这样的变量。
第二种形式(“采购”)有点像 C 中的 #include。
【讨论】:
第一个要求文件设置 +x 标志。第二个使用 .命令又名“源”,描述为here。
【讨论】:
-x permission 标志,而不是 bash -x option 只是为了清楚。