gpt4 book ai didi

python - 有多个命令的别名,是否可以将参数传递给第一个命令?

转载 作者:太空宇宙 更新时间:2023-11-04 02:22:51 24 4
gpt4 key购买 nike

我是编程/脚本的初学者,遇到了以下问题。我在堆栈溢出和网络上搜索了很多,但无法解决问题。下面描述了我面临的详细情况,以防有人有完全不同的方法来解决问题。

有没有办法使用 alias (我称之为 go_to )有多个命令,但我可以在其中传递 argument只有第一个 command1

我要执行goto argument来自类似 alias go_to='command1 ; command2' 的内容.

command1应该评估 path基于 argumentcommand2应该cd到那里。

详细情况

我正在使用 slurm 批处理系统排队和启 Action 业的计算机设备上执行计算。使用命令 squeue slurm 显示所有正在运行和挂起的作业,包括它们的 Job_ID。使用 sjobs <Job_ID>显示一堆信息,包括开始计算的路径。我的目标是转到该目录。我当然可以这样做:

  1. squeue查看所有职位及其 Job_ID,
  2. 选择其中一个 Job_ID,
  3. sjobs <Job_ID>显示信息,
  4. 用眼睛搜索包含路径的行,复制路径并
  5. 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 .因此,我的想法是输出 path从 python 脚本到一个文件,例如Path.txt可以被别名使用。使用别名

alias go_to='cd $(head -1 /absolute/path/to/Path.txt)'可以更改为所需的 path .但这涉及让 python 脚本事先运行。我现在的实际问题是一步完成,因为我需要通过 <Job_ID>path的评价首先。

正如我所说,我对脚本编写还很陌生,所以欢迎使用任何替代方法。

最佳答案

定义一个函数来调用这两个命令。函数的参数可以传递给第一个命令。

go_to () {
command1 "$1"
command2
}

关于python - 有多个命令的别名,是否可以将参数传递给第一个命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51174275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com