如何在更改 ~/bin/script_name 中的 Bash 脚本后重新加载它?

如何在更改 ~/bin/script_name 中的 Bash 脚本后重新加载它?

语境

在将脚本导出到~/bin/script_nameCLI 并在任意位置使用以下方式成功运行该脚本后script_name,我更新了脚本的内容。但是,此更新并未反映在行为中。

旧内容:

#!/bin/bash
echo "Old world"

新内容:

#!/bin/bash
echo "Hello world"

我保存了该文件并重新打开它,它显示了新的内容。

预期输出:

Hello world

实际产量:

Old world

问题

~/bin/script_name当我使用以下方式从任意位置调用它时,如何确保使用更新的内容: script_name

尝试

首先,我尝试关闭并重新打开终端。然后我尝试重新启动,两次都出现了相同的、对我来说意想不到的行为。

附加信息

Ubuntu 22.10,$PATH内容为:

/home/name/miniconda/envs/snncompare/bin:/home/name/miniconda/condabin:/home/name/.local/bin:/home/name/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin

答案1

/home/name/.local/bin/script_name您有一个未更新的脚本副本。此脚本变体在路径中首先找到。

因此,当您从任意位置运行它时,您都会得到旧脚本。

从此位置删除脚本:

rm /home/name/.local/bin/script_name

并且只将脚本放在一个位置。否则,你会给自己制造麻烦。

答案2

通过将文件复制到~/.local/bin文件夹(也)找到了解决方案。正如我从steeldriver的评论中了解到的那样。

相关内容