语境
在将脚本导出到~/bin/script_name
CLI 并在任意位置使用以下方式成功运行该脚本后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的评论中了解到的那样。