linux - 我什么时候可以在 bash、ubuntu 中使用命令 ". shellscript"运行 shell 脚本?

标签 linux bash shell ubuntu

如果我在/usr/bin 目录中有一个脚本“shellscript”(它也可以是已安装程序的脚本)。当我在终端中运行命令“shellscript”(从任何地方、主目录或其他目录)时,它运行完美,但是当我使用“.shellscript”时,该文件也会执行。 我知道我们可以使用“./path/to/script/shellscript”来运行它,但是如果它在/usr/bin 中,我们可以使用没有路径的直接命令吗? 运行安全吗? 我们可以用这样的方式运行程序吗? 我需要解释。如果是的话为什么?如果不是那么为什么?不应该那么为什么呢?

最佳答案

Bash shell 搜索 shellscriptPATH 变量中列出的目录。 shellscript 案例。主要区别在于,当使用 . (或等效的 source)启动脚本时,不会创建新的 shell 进程来解释该脚本。这有时很有用,因为它允许脚本定义随后在调用者中可用的环境变量和函数。欲了解更多详情,请参阅Bash manual page (信息bash)。

关于linux - 我什么时候可以在 bash、ubuntu 中使用命令 ". shellscript"运行 shell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41396024/

相关文章:

shell - 展示 bash shell stdout/stderr 重定向行为的备忘单

java - 调用 .jar 文件在 php shell_exec linux 中不起作用,但在 cmd 和 windows 中有效

java - 无法在 PHP 中使用 shell_exec() 传递 STDIN

bash - 如何在 YAML 中使用 'script:' 中的多行命令?

linux - 使用 Bash 用 IFS 分割字符串?

mysql - 使用 bash 将图像 blob 从 mysql 下载到本地计算机?

c - 实现类似Linux内核的module_init,但是在ld脚本中遇到了一些麻烦

c++ - 调试客户机器上生成的核心文件

php - PHP 未完全检索 Shell 输出!

mysql - CentOS 在 MySQL 服务停止时重新启动的脚本