【问题标题】:When can I run a shell script with command ". shellscript" in bash,ubuntu?我什么时候可以在 bash,ubuntu 中使用命令“.shellscript”运行 shell 脚本?
【发布时间】:2017-05-14 17:48:50
【问题描述】:

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

【问题讨论】:

标签: linux bash shell ubuntu


【解决方案1】:

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

【讨论】:

  • 使用它有什么缺点吗?脚本。如果我们安装了一个程序“prog”并且我使用命令“prog”和“.prog”运行它,是否会发生任何威胁或错误?
  • 我正在为某些程序执行此操作,但它的行为不同?可能是什么原因?它们之间有什么不同?
  • 你能详细说明“它允许脚本定义环境变量和函数,然后在调用者中可用”。
  • 它是否覆盖环境变量或类似的东西。 @melpomene
  • 命令“prog”和“.prog”的行为确实可以不同,如果“prog”是一个shell脚本。你应该使用“。”仅当您希望脚本影响调用者的环境时才调用脚本。
猜你喜欢
  • 1970-01-01
  • 2019-03-16
  • 1970-01-01
  • 2017-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-31
  • 2013-02-14
相关资源
最近更新 更多