标签: dot-source

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

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

# update.sh
#!/bin/bash
cp -f $PWD/bash_profile ~/.bash_profile
source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

这是行不通的!它用cp -f $PWD/bash_profile ~/.bash_profile.

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

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

bash dot-source

6
推荐指数
1
解决办法
6621
查看次数

Dot-Sourced 文件中的 PSScriptRoot 如何工作?

假设我有 2 个文件A.ps1B.ps1,在此目录结构中:

--  root
 |
 |-- A.ps1
 |
 |--  subfolder
   |
   |-- B.ps1
Run Code Online (Sandbox Code Playgroud)

A.ps1:

Write-Host $PSScriptRoot
Run Code Online (Sandbox Code Playgroud)

B.ps1:

. "\root\A.ps1"
Run Code Online (Sandbox Code Playgroud)

现在,考虑到这一事实

点采购获取您指定的脚本并立即执行它,就像它位于原始脚本中的该位置一样

问题:如果我运行B.ps1,我期望结果是\root\subfolder,但它是\root,为什么?

如果A.ps1是点源到 中B.ps1,那么脚本的内容不应该直接在 中写入一样A.ps1运行吗?意思是,不应该像从 调用一样运行,从而评估为? 我什至通过包装一个函数并在点采购调用该函数来测试这一点。仍然产生相同的结果..B.ps1$PSScriptRootB.ps1\root\subfolderA.ps1B.ps1

点采购到底是如何运作的?

powershell relative-path dot-source

4
推荐指数
1
解决办法
651
查看次数

为什么 PowerShell.exe 没有办法点源脚本?

帮助文档说该脚本将以“点源”模式执行,但事实并非如此。为什么?

我阅读了帮助文档全文,没有找到原因,所以才来求助。

PS> PowerShell.exe -File '.\dot-source-test.ps1'
PS> $theValue
PS> . '.\dot-source-test.ps1'
PS> $theValue
theValue
PS>
Run Code Online (Sandbox Code Playgroud)

“dot-source-test.ps1”的内容是$theValue = 'theValue'

如果 File 的值是文件路径,则脚本在本地范围(“点源”)中运行,以便脚本创建的函数和变量在当前会话中可用。

about_PowerShell_exe - PowerShell | about_PowerShell_exe 微软文档

powershell dot-source

2
推荐指数
1
解决办法
3733
查看次数

标签 统计

dot-source ×3

powershell ×2

bash ×1

relative-path ×1