如何将路径与源文件中的变量连接起来

如何将路径与源文件中的变量连接起来

我有一个包含一些变量的源文件,例如

 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

感谢您非常详尽的回答。

相关内容