$ whatis source
source: nothing appropriate.
$ man source
No manual entry for source
$ source
bash: source: filename argument required
source: usage: source filename [arguments]
Run Code Online (Sandbox Code Playgroud)
它存在,并且可以运行。为什么 Ubuntu 中没有关于它的任何文档?它有什么作用?如何安装有关它的文档?
我曾经发现了一个很棒的 bash 选项,但现在我不记得如何重新启用它。
它扩展了自动完成功能以查看您最近的历史记录。因此,如果您之前输入过open index.html然后open map.html输入
$ op
Run Code Online (Sandbox Code Playgroud)
并按Tab一次将自动完成到open map.html. 再次按下Tab将自动完成到open index.html。
有谁知道我如何重新启用它?
我在 Mac 上弄乱了环境变量,试图学习如何使用它们,然后我使用了命令nano ~/.bash_profile,然后在其中添加了该行HOME=/Users/MyCompName/Desktop来更新我的 home 变量。
此更改有效,当我printenv用来查看所有环境变量时可以看到,但是当我改HOME回去时,我似乎~/.bash_profile再也找不到了。它去了哪里?
当我输入一个例如。在我的.bashrc文件中添加了一个新别名我无法立即在该终端窗口中使用它,直到最近我认为我必须重新启动终端才能重新加载.bashrc文件。然后我在某处发现如果我写
. .bashrc
Run Code Online (Sandbox Code Playgroud)
这将.bashrc在当前窗口中重新加载文件,我不必重新启动。这对鳍有效,但实际发生了什么?为什么这会重新加载.bashrc文件?
这些问题解决了以下功能source:
执行 Bash 脚本与获取它有什么区别?
“源”有什么作用?
但我很困惑为什么source在脚本中调用会传递脚本的参数。例如我有这两个脚本:
调用者.sh
source sourced.sh
source sourced.sh ""
Run Code Online (Sandbox Code Playgroud)
来源.sh
echo [$*]
Run Code Online (Sandbox Code Playgroud)
当我做
./caller.sh arg1 arg2
Run Code Online (Sandbox Code Playgroud)
我得到
[arg1 arg2]
[]
Run Code Online (Sandbox Code Playgroud)
“arg1 arg2”被传递给 sourced.sh 即使我没有指定source sourced.sh $*.
为什么?
我发现附加 "" 会阻止传递参数。这是防止传递参数的推荐方法吗?
我想制作一个简单的脚本bash_history,根据用户输入的行号从 中删除一行。
echo -n "Delete History Line Number: "
read num
history -d $num
Run Code Online (Sandbox Code Playgroud)
错误是“历史位置超出范围”(它不应该是,我使用的是范围内的数字)。
为什么这不起作用?
我想source在 shell 脚本中使用命令。
我所做的如下所示:
在 start.sh
source ~/tensorflow/bin/activate
Run Code Online (Sandbox Code Playgroud)
然后在命令行中运行这个脚本。
$sh start.sh
Run Code Online (Sandbox Code Playgroud)
然而什么也没有发生
$which source
Run Code Online (Sandbox Code Playgroud)
命令不显示任何内容。
那么,source是不是正常的命令?
这是错误的想法吗?或者如何减少路径类型?
从这篇文章:
Sourcing 将执行当前 shell 中的命令,执行将创建一个新的 shell 并在那里执行命令。
他描述每个 shell 都有自己的 PID。我看不出 shell 和 process 之间有什么区别,至少在他的上下文中如何使用 shell 这个词没有区别。
bash ×8
shell ×4
linux ×3
command-line ×2
autocomplete ×1
bashrc ×1
mac ×1
script ×1
sh ×1
shell-script ×1
terminal ×1