I have в source file that contains some переменные, for example,
locate=$HOME
and в shell рукописный шрифт that contains
. .foorc
cat ${locate}/file.txt
I get cat ошибка with the "не such file" mention. Every file is in its assigned directory.
What did I do wrong?
Thanks, Рафаэль
Можно использовать переменные, объявленные в файле при помощи source filename
в сценарии оболочки.
Пример:
Это - то, как мой каталог похож:
.
├── .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
Проблема решена. Я предположил, что, если эти cat
функция не могла бы найти файл, это была проблема из-за рабочего каталога. Я добавил cd
к каталогу, в котором я, казалось, был, и проблема решила
cd ${location}
cat file.txt
Спасибо за Ваш очень полный ответ.