从 csh 脚本更改工作目录

change working directory from csh script

我想查找运行个进程的一些数据,实际上我是在scratch目录中搜索对应的job-ID。我设法通过以下命令手动执行此操作(假设作业 ID 为 12345):

find ~ -name '12345.out'

根据作业找到输出文件:

/home/username/somefolder/12345.out

临时目录被写入该文件夹中名为 .scrdir 的文件,因此

cd | cat /home/username/somefolder/.scrdir

带我去我想去的地方。

我现在想 将它与我的 .cshrc.

中的 csh 脚本或某个别名 合并

到目前为止我的尝试:

#/bin/csh

set jobfile = `find ~ -name $argv[1].out`
set jobdir = `dirname $jobfile`
set scrdir = `cat $jobdir/.scrdir`
echo $scrdir

其中第一个参数值是作业 ID,例如 12345该脚本打印正确的暂存目录,但我希望它在我调用该脚本后将我的实际工作目录更改为暂存目录。如何从 csh 脚本中更改工作目录?


我也很感激任何改进问题 / -title 的建议。

由于csh中没有shell函数,我找到的唯一解决办法是用source调用脚本。

脚本:

#/bin/csh

set jobfile = `find ~ -name $argv[1].out`
set jobdir = `dirname $jobfile`
set scrdir = `cat $jobdir/.scrdir`
cd $scrdir

调用脚本:

source myscript.sh