首页 > 解决方案 > 是否有不使用 shell 将其命令行参数写入文件的 Linux 命令?

问题描述

我有一个批处理系统,可以顺序执行许多命令。这些命令被指定为单词列表,由 python 的subprocess.call()函数执行,而不使用 shell。由于各种原因我不想改变处理系统。

我想向文件中写入一些内容,以便后续命令可以使用它。不幸的是,我能想到的将东西写入磁盘的所有方法都涉及某种重定向,这是一个 shell 概念。

那么有没有一种方法可以编写一个 Linux 命令行,该命令行将接受其参数并将其写入文件,在 shell 之外执行的上下文中?

标签: linuxunixcommand-line

解决方案


好吧,你可以编写一个通用的解析器和进程管理器来为你处理这个问题,但是幸运的是,Linux 已经自带了。您所要做的就是告诉它要运行什么命令,它会为您处理重定向。

所以,如果你稍微修改一下你的命令,你可以很容易地做到这一点。只需将单词与字符串连接在一起,在这些单词中可能包含空格或其他特殊字符时引用,然后您可以使用如下列表:

/bin/sh, -c,{your new string here} > /some/file

Et voila,写入磁盘的内容。:)


推荐阅读