我想查找正在运行的进程的一些数据,实际上我正在搜索临时目录到相应的作业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的建议。
答案 0 :(得分:1)
由于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