【发布时间】:2018-10-01 19:42:44
【问题描述】:
我是 Linux 和 bash 的新手。我制作了一个脚本来访问位于主目录中的文件夹,但并不总是从主目录调用该脚本。从任何子目录调用它时我得到的提示指定它找不到该文件。
这是我正在尝试做的一个示例:
for entry in "~/.directory"/*
do
echo "$entry"
done
如果我将脚本放在 /home 的子目录中并尝试调用它,则脚本无法找到该目录。我知道它存在,就好像我在子目录中运行 ls ~/.directory 一样,它能够找到文件并毫无问题地打印它们。我应该尝试以不同的方式访问 bash shell 中的目录吗?谢谢!
投票结束我的问题。这对我来说似乎相当具体,一般的解决方案是我之前发现的,也发布在下面的 cmets 中。我最终会弄清楚的-
【问题讨论】:
-
改用
$HOME。 -
@MarkSetchell 我将行更改为 'for entry in "$HOME/.directory"/* 但仍然得到相同的打印输出,指定:“无法访问'.directory':没有这样的文件或目录”。
-
也许您还没有名为
$HOME/.directory的目录。试试ls -ld $HOME/.* -
@user3657449 听起来
HOME变量有问题。echo "'$HOME'" | LC_ALL=C cat -vt打印什么? -
@MarkSetchell 该脚本运行良好,并在从主目录调用脚本时识别 $HOME 变量。我尝试了 ls -ld $HOME/.* 并且我在脚本中寻找的目录出现了。