问题标签 [dot-source]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
887 浏览

linux - “.[script]”或“source [script]”、“bash [script] 或 $SHELL [script]”和“./ [script]”或“[script]”之间有什么区别?

我知道这一点source.做同样的事情,如果标题中的其他命令对不是同样的事情,我会感到惊讶(因为我将 bash 作为我的 shell 运行,$SHELL [script]并且bash [script]是等效的,对吧?? )。

那么这三种执行脚本的方法有什么区别呢?我问是因为我刚刚了解到采购脚本与执行它并不完全相同。在某种程度上,我从运行我的“实验”和阅读手册页中发现并不明显。

通过在我编写的极其简单的脚本上盲目地调用这些函数,我找不到其他哪些细微差别?在阅读了上面链接的答案之后,我可以强烈地猜测我的问题的答案将是一个非常简单的解释,但在某种程度上,我自己几乎永远不会完全发现。

这是我做的“实验”:

0 投票
1 回答
1234 浏览

bash - bash 脚本中的源命令

我正在尝试将源命令放在 bash 脚本中,以便在编写 django 网站时可以快速设置和使用虚拟环境。

我尝试了以下但没有取得多大成功,因为我的路径没有像我在提示符处输入它时那样以 (path) 为前缀。

任何人都可以帮助并让我知道我忽略了什么吗?

编辑:

pwd 是“示例”,来源是:
"~/Documents/virtual-env/example/bin/activate".

经过一些研究,我认为我需要使用类似的东西:
"source ./script"

(不工作)因为我认为环境是创建的,但没有被归入其父环境,我认为这是现在不可能的。

0 投票
1 回答
389 浏览

powershell - 永久点源文件?

我一直在使用 Custom-Powershell-Script。我可以简单地对文件进行点源,但我必须在每个会话中都这样做。

有没有办法永久点源文件?我不想一遍又一遍地这样做。

0 投票
1 回答
30102 浏览

bash - shell脚本中的“source”命令不起作用

我有一个要在 Centos 7 中获取的文件。如果我这样做,它就可以正常工作:

但是,如果我把它放在一个 shell 脚本中,它就不起作用..

这是我的 shell 脚本:xRUN

谁能告诉我我可能做错了什么或错过了什么?

0 投票
1 回答
1126 浏览

powershell - 来自不同位置的点源文件

我正在将一个“函数库”文件点源到我正在处理的每个 Powershell 脚本中。

目前,我将此文件放在与脚本相同的目录中,并按如下方式对其进行点源:

一旦脚本在与脚本正在执行的操作相关的特定位置的服务器上“投入生产”,这就很好了。但是,当我从网络驱动器上的通用“Powershell”文件夹构建脚本时,这意味着我最终会在几个不同的文件夹中得到相同的文件——编辑一个函数库只是时间问题然后对不同的文件进行不同的编辑,最终得到应该是同一个文件的无数版本。

因此,理想情况下,我想将此函数库文件存储在“G:\PowerShell\Function Library”中,并在脚本的工作目录中不存在这样的文件时引用它。

这个的伪将是这样的:

为了现在实现这一目标,我只是在做:

这有效,但总是给我一个错误 - 我无法找到一种方法来消除错误。我试过了-ErrorAction "SilentlyContinue"| Out-Null但似乎都没有改变。

因此,我想这个问题有两个潜在的答案,也许同时回答这两个问题对这个线程的未来读者都有好处:

  • 我如何测试文件是否存在(Test-Path大概?),然后如果它存在,则对其进行点源?
  • 如何在 Powershell 中对文件进行点源处理并忽略无法找到的文件中的任何错误?

提前致谢。PS如果任何版主想要描述一个更相关的标题,请随意 - 我已经尝试过但失败了!

0 投票
2 回答
7780 浏览

bash - `source ~/.bash_profile` 在 bash 脚本中不起作用

这是一个将 bash 文件移动到主页并使用 source 命令加载它的脚本。

这没用!它使用cp -f $PWD/bash_profile ~/.bash_profile.

里面~/.bash_profile有一个新的 PS1 定义。文件已更新,但在打开新窗口之前没有发生任何更改。我需要source ~/.bash_profile在脚本执行后运行...

source是否可以在 bash 脚本中运行命令?

0 投票
0 回答
103 浏览

powershell - 点源脚本在第二次运行时未引用当前目录

我有一个脚本,下面,我有一个脚本文件夹。它引用了一组命令提示符应用程序$cmd1.exe, etc.。在 VS Code 中使用 Powershell 或 Integrated Powershell 终端,我按照以下步骤使用它:

  1. 从 Scripts 目录点源脚本> .\new-customconfig.ps1
  2. 切换到工作目录> cd [New Directory]
  3. 使用脚本中的函数并从工作目录传递一个文件名> New-CustomConfig .\FileName

它在我第一次运行脚本时从工作目录传递文件,但从任何后续运行中,它都会在 Scripts 目录中查找文件。

有什么我做错了吗?

0 投票
0 回答
444 浏览

shell - 如何使用 zsh 函数获取脚本而不产生子 shell 来设置环境变量?

我正在尝试运行一个 zsh/bash 脚本,它将几个值写入环境变量,我希望这些变量可用于父 shell,因为它们是我们使用的几个工具所必需的。如果我使用 '. myscript myparamater' 我得到了预期的结果,但是定义一个 zsh 函数来执行此操作而不必使用点表示法不会导致设置变量。

我对 zsh/bash 脚本很陌生,这是我第一次真正努力编写有用的东西。我在 MacOS 上运行它,但希望它也能在 Linux 中工作,我的函数正在采购的脚本正在执行一些 bash 逻辑,并且在某些情况下还执行第三方可执行文件(实际上是一个调用 java 二进制文件的 bash 脚本)。在我的脚本中,我直接使用其可执行名称调用第三方工具,使用 exec 或点表示法调用它似乎无法正常工作。

zsh 功能:

我的脚本: https ://gist.github.com/ckizziar/a60a84a6a148a8fd7b0ef536409352d3

使用 '。okta_setprofile myprofile' 我收到了 okta_setprofile 脚本的预期输出,在我的 shell 中设置了四个环境变量(AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_DEFAULT_REGION 和 AWS_SESSION_TOKEN)。使用 'okta-auth myprofile' 的脚本反馈与以前相同,但是在执行后,环境变量不会设置或更新。

更新 20190206 以显示流程

okta_setprofile 流图

0 投票
1 回答
600 浏览

windows - 如何在 PowerShell 的子文件夹中点源函数

我正在尝试创建一个 PowerShell 模块,该模块将使用以下代码对在子文件夹“\Functions”中找到的任何函数进行点源:

如果我将所有函数直接放在“\Functions”文件夹中,这将正常工作。但是,这并不理想,因为我认为它不允许在以后正确管理函数文件(尤其是在多个系统管理员可以在任何给定时间修改每个函数的脚本文件的团队环境中)。此外,一些函数从 CSV 或文本文件中获取输入,将这些资产和相应的函数包含在同一个文件夹中会更加整洁。

因此我的问题是: 我如何完成我在上面尝试做的事情(即,点源在$PSScriptRoot的“\Functions”子文件夹中找到的所有函数,即使它们位于子文件夹中?

PS。 最终目标是拥有一个通用模块,我将其分发到我的所有管理员工作站,这将使我们创建的所有与管理员相关的脚本/功能可用。然后,当我们添加和删除脚本时,它们会在每次启动 PowerShell 时在模块中动态更新。

在这个YouTube 视频中感谢Bryan Cafferky的灵感

0 投票
1 回答
919 浏览

bash - 在ansible中使用unix命令“source”

我有以下ansible剧本:

runWithDotSlash.yml

runWithSource.yml

当我 ssh 进入 user@myhost.local 时,我被带到用户的主目录,我可以使用点斜杠和源代码运行 script.sh。然而,只有第一个剧本有效。

我正在使用以下命令运行剧本:

第二个给出以下错误消息:

这是 myhost 用户主目录中的 script.sh

为什么源不工作?我该怎么做才能让它发挥作用?