如何从文件中获取命令参数,每行一个?

如何从文件中获取命令参数,每行一个?

假设我有一个文件名如下的文件:

requests.log
responses.log
resources used.log

我想查看所有这些文件。我很想做:

$ vi `cat /tmp/list`

但这最终会打开文件“requests.log”、“responses.log”、“resources”和“used.log”,这不是我想要的。

我试过

$ cat /tmp/list | xargs -L 99 vi

但这会导致错误消息“警告:不是来自终端的输入”

我尝试编辑文件并引用每一行,但这也没有帮助。

有没有办法不需要编写某种前端脚本来做到这一点?

答案1

这就是我最后写的内容。它有效,但它有点没有答案,因为我希望在不编写前端的情况下做到这一点。

#!/usr/bin/env python3

usage = """
Read arguments from a file, one per line, then execute the given
command.

usage:      lineargs <filename> <cmd> [args]
"""

import os
import sys

argfilename = sys.argv[1]        # Get arguments from this file, one per line
cmd = sys.argv[2:]               # The command and additional arguments

args = open(argfilename, "r").read().splitlines()

cmd.extend(args)
os.execvp(cmd[0], cmd)

我没有费心进行错误检查等。这只是一个一次性脚本。

相关内容