使用以下命令将脚本导出到~/bin/script_name
CLI 并在任意位置成功运行该脚本后script_name
,我更新了脚本的内容。但是,此更新并未反映在行为中。
#!/bin/bash
echo "Old world"
Run Code Online (Sandbox Code Playgroud)
#!/bin/bash
echo "Hello world"
Run Code Online (Sandbox Code Playgroud)
我保存了文件,然后重新打开它,它显示了新内容。
Hello world
Run Code Online (Sandbox Code Playgroud)
Old world
Run Code Online (Sandbox Code Playgroud)
~/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
Run Code Online (Sandbox Code Playgroud)
/home/name/.local/bin/script_name
您有一份未更新的脚本副本。该脚本的变体首先在路径中找到。
因此,当您从任意位置运行它时,您会得到旧脚本。
从此位置删除脚本:
rm /home/name/.local/bin/script_name
Run Code Online (Sandbox Code Playgroud)
并且只将您的脚本放在一个位置。否则,你会给自己制造混乱。