Я хочу найти некоторые данные о запущенных процессах, фактически, я ищу каталог с нуля для соответствующего идентификатора задания. Мне удалось сделать это вручную с помощью следующих команд (предполагается, что на работу ID-12345):изменить рабочий каталог из сценария csh
find ~ -name '12345.out'
Это находит выходной файл в соответствии с работой:
/home/username/somefolder/12345.out
каталог царапанию написанном файл с именем .scrdir в этой папке, поэтому
cd | cat /home/username/somefolder/.scrdir
приносит меня туда, где я хочу.
теперь я хочу объединить, что в CSH сценарий или какой-либо псевдоним в моем .cshrc.
Мой atempt до сих пор:
#/bin/csh
set jobfile = `find ~ -name $argv[1].out`
set jobdir = `dirname $jobfile`
set scrdir = `cat $jobdir/.scrdir`
echo $scrdir
, где первое значение аргумента является работа-ID, например, 12345 Этот скрипт печатает правый каталог с нуля, но я хочу, чтобы он изменил мой фактический рабочий каталог на каталог с нуля после того, как я вызвал скрипт. Как изменить рабочий каталог из сценария csh?
Я также был бы признателен за любые рекомендации по улучшению вопроса/-title.
Это не entirly мне ясно, что именно вы хотите, или то, что именно ваша проблема. Я думаю, что у вас уже есть (нерабочая) попытка? Вероятно, вы должны добавить это в свой вопрос, поскольку это, вероятно, станет более ясным, где ваши проблемы или проблемы. – Carpetsmoker
Попытался изменить каталог с помощью 'pushd' и' popd', но когда скрипт заканчивается, стек каталога сбрасывается. (Очевидно, каждая подоболочка приносит свой собственный стек каталогов). – tmartin