我在 Ubuntu 中有一个不起作用的文件source
,我不知道发生了什么。
$ cat .broken_file
export D='222'
$ cat .working_file_1
export D='88'
$ D=5
$ echo $D
5
$ source .working_file_1
$ echo $D
88
$ source .broken_file
$ ## What is happening here? It should be 222
$ echo $D
88
现在,两个文件具有相同的权限:
$ ll .working_file_1 .broken_file
-rw-rw-r-- 1 my_user my_user
-rw-rw-r-- 1 my_user my_user
此外,如果我复制损坏的文件,新文件就可以工作:
$ cp .broken_file .broken_file_copy
$ source .broken_file_copy
$ echo $D
222
所以它也不是文件的内容。
我可以修改我的 .broken_file (更改变量和值的名称),但它仍然失败。
$ echo $SHELL
/bin/bash
$ echo $BASH_VERSION
5.1.16(1)-release
$ uname -srv
Linux 6.2.0-26-generic #26~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Jul 13 16:27:29 UTC 2
知道这是什么吗?
更新:type
返回一些奇怪的信息(我不知道如何解释这一点):
$ type .broken_file
.broken_file is DIFFERENT_FOLDER/.broken_file
$ type .broken_file_copy
bash: type: .broken_file_copy: not found
PATH
你的电脑里有同名的文件吗?来自Bash 文档的信息source
:尝试检查
这可能会起作用: