我是一个编程/脚本的初学者,一直在解决以下问题。我在堆栈溢出和网络上搜索了很多,但是没有解决这个问题。我面临的详细情况如下所述,以防有人有完全不同的方法来解决问题。你知道吗
有没有一种方法可以将alias
(我称之为go_to
)与多个命令一起使用,但是我可以将argument
只传递给第一个command1
?你知道吗
我想从alias go_to='command1 ; command2'
这样的地方执行goto argument
。你知道吗
command1
应该根据argument
评估path
,并且command2
应该cd
到那里。你知道吗
我在一个计算机设备上执行计算,它使用slurm批处理系统来排队和启动作业。使用命令squeue
slurm显示所有正在运行和挂起的作业,包括它们的作业ID。使用sjobs <Job_ID>
显示一组信息,包括开始计算的路径。我的目标是去那个目录。
我当然可以做到:
squeue
要查看所有作业及其作业IDsjobs <Job_ID>
要显示信息cd path
到达我想去的地方。你知道吗如果要检查多个计算,这是一个冗长的过程。因此,我希望使用别名和/或bash或python脚本(我们称之为go_to
),以便只需键入go_to <Job_ID>
即可到达目录。你知道吗
到目前为止,我使用python脚本实现了python script.py <Job_ID>
调用sjobs
并从中提取path
(但是也可以将sjobs管道化到grep和sed)。
我已经读过了
Why doesn't "cd" work in a shell script?和Location of cd executable并理解os.chdir(path)
或subprocess.call(['cd',path])
只会更改python子shell中的目录,并且一旦脚本完成,我将在启动脚本的同一目录中结束。你知道吗
据我所知,只有alias
才能把我带到path
。因此,我的想法是将python脚本中的path
输出到一个文件中,例如Path.txt
以供别名使用。使用别名
alias go_to='cd $(head -1 /absolute/path/to/Path.txt)'
可以更改为所需的path
。但这需要事先让python脚本运行。
我现在的实际问题是一步到位,因为我需要首先将<Job_ID>
传递给path
的求值。你知道吗
正如我所说的,我对脚本非常陌生,所以欢迎使用任何其他方法。你知道吗
定义一个函数来调用这两个命令。函数的参数可以传递给第一个命令。你知道吗
相关问题 更多 >
编程相关推荐