Ubuntu中source无法加载原文件但复制文件正常的问题求助
问题原因
从type .broken_file的输出可以确定:bash已将.broken_file识别为指向DIFFERENT_FOLDER/.broken_file的外部命令/别名/函数,而非当前目录下的同名文件。当执行source .broken_file时,bash优先调用这个预定义的映射,加载的是其他目录的文件(该文件未修改D变量),因此当前shell的D变量无变化。
解决方法
临时解决(立即生效)
执行source ./.broken_file,通过明确添加./前缀,强制bash加载当前目录下的目标文件。
彻底解决(消除映射冲突)
- 检查并删除别名:
alias | grep .broken_file # 如果输出存在别名,执行以下命令删除 unalias .broken_file - 检查并删除同名函数:
declare -f .broken_file # 如果输出存在函数定义,执行以下命令删除 unset -f .broken_file - 清理PATH路径:
检查$PATH是否包含DIFFERENT_FOLDER,若该目录无需在PATH中,可从~/.bashrc或~/.profile等配置文件中移除对应路径,避免后续出现类似文件名与命令的冲突。
内容的提问来源于stack exchange,提问作者Gabriel Furstenheim
相关产品推荐
相关产品推荐

