修改~/bin/script_name脚本后如何让新内容生效?
修改~/bin/script_name脚本后如何让新内容生效?
我明白你遇到的问题了——明明改了~/bin/script_name里的内容,甚至重启终端、电脑都没用,运行出来还是旧的输出,这确实挺闹心的。咱们一步步来排查解决:
先确认你实际运行的脚本是不是你修改的那一个
你的$PATH里有多个目录,而且miniconda的环境目录排在~/bin前面,说不定其他目录里也有个同名的script_name,系统优先执行了那个旧版本。你可以用这个命令查当前运行的脚本位置:which script_name如果输出不是
~/bin/script_name,那问题就找到了——你改的是~/bin里的脚本,但系统跑的是另一个位置的同名文件。这种情况要么删除其他位置的旧脚本,要么直接用绝对路径~/bin/script_name运行你修改后的版本。如果脚本路径正确,清空bash的命令缓存
bash会把你之前运行过的命令位置存在哈希表里,避免每次都遍历$PATH,有时候修改脚本后缓存没更新就会出现这种情况。你可以用下面的命令删除script_name的缓存条目:hash -d script_name或者更彻底一点,清空整个哈希表(不会有不良影响):
hash -r之后再运行
script_name,系统就会重新查找$PATH里的脚本,自然就会用你修改后的新版本了。
备注:内容来源于stack exchange,提问作者a.t.
相关产品推荐
相关产品推荐

