Несколько читать между строками, я думаю, что вы пытаетесь вызвать скрипт, который вы ожидаете, чтобы изменить каталог на вызывающие: Например:
MyScript:
read file_path
cd "$file_path"
командной строки:
./myscript
и вы обнаружите, что он не изменил каталог. Это потому, что вы запускаете скрипт в дочернем процессе. Он изменяет текущий каталог дочернего элемента, а затем возвращается к родительскому объекту, который не изменяется.
Вы должны источника файл, а, то есть запускать команды в процессе тока, а не отдельные один:
. ./myscript
Да, обратите внимание на дополнительную «точку» .
на Начало. Это в общем известно как команда source
, и вы можете использовать source
вместо «точки» на bash и csh.
такая же проблема, даже если я перехожу к этому – Hobbit1919
@ user2250162 Существует ли путь? Попробуйте сделать 'echo $ file; path ls $ file_path', чтобы узнать, правильно ли он получен. – fedorqui
echo печатает путь, но cd не меняет каталог – Hobbit1919