使用 args 向 Python 脚本添加第二条命令

使用 args 向 Python 脚本添加第二条命令

我有一个 python 脚本的别名,它基本上将一些文件转换为另一种格式,我希望能够在运行 python 脚本后删除该脚本作为后期处理生成的一些中间格式。

我的 python 脚本的别名如下所示:

alias convert='python /filepath/convert.py'

我在包含要转换的文件的目录中像这样运行它:

convert *.RW2

该脚本将所有 .RW2 文件转换为 .tiff 文件,但会生成一个中间 .dng 文件,我不需要保留该文件,它是一个临时文件。

我如何简单地将删除附加到别名?如果我修改别名,它似乎会干扰 .py 脚本的参数,例如这不起作用:

alias convert='python /filepath/convert.py && rm *.dng'

答案1

解决这个问题的“最干净”的方法可能是修改convert.py脚本,让它自行清理。

别名是一个简单的文本替换宏 - 因此您的示例将扩展为类似

python /filepath/convert.py && rm *.dng file1.RW2 file2.RW2 file3.RW2 ...

这显然是错误的。对于比简单文本替换更复杂的事情,您应该使用 shell 函数,例如

convert() {
  python /filepath/convert.py "$@" && rm -- *.dng
}

也许

convert() {
  python /filepath/convert.py "$@"
  for f; do 
    rm -- "${f%.*}.dng"
  done
}

(尽管您可能想选择一个不同的名称,因为已经存在一个名为的 ImageMagick 命令convert)。

也可以看看别名——能够传递参数吗?

相关内容