我有一个包含一些变量的源文件,例如
locate=$HOME
以及包含以下内容的 shell 脚本
. .foorc
cat ${locate}/file.txt
我收到 cat 错误,提示“没有此文件”。每个文件都在其指定目录中。
我做错了什么?
谢谢,拉斐尔
答案1
source filename
您可以在 shell 脚本中使用文件中声明的变量。
例如:
我的目录如下所示:
.
├── .foorc
├── foo.sh
└── testdir
└── file.txt
内容.foorc
:
directory="./testdir"
word="World"
内容file.txt
:
foo-bar
内容foo.sh
:
#!/bin/bash
source .foorc
echo "Hello $word"
cat "$directory"/file.txt
现在,运行./foo.sh
结果为:
Hello World
foo-bar
答案2
问题解决了。我假设如果函数cat
找不到文件,那么这是由于工作目录导致的问题。我添加cd
到我似乎所在的目录中,问题解决了
cd ${location}
cat file.txt
感谢您非常详尽的回答。