linux - 是否有不使用 shell 将其命令行参数写入文件的 Linux 命令?
问题描述
我有一个批处理系统,可以顺序执行许多命令。这些命令被指定为单词列表,由 python 的subprocess.call()
函数执行,而不使用 shell。由于各种原因我不想改变处理系统。
我想向文件中写入一些内容,以便后续命令可以使用它。不幸的是,我能想到的将东西写入磁盘的所有方法都涉及某种重定向,这是一个 shell 概念。
那么有没有一种方法可以编写一个 Linux 命令行,该命令行将接受其参数并将其写入文件,在 shell 之外执行的上下文中?
解决方案
好吧,你可以编写一个通用的解析器和进程管理器来为你处理这个问题,但是幸运的是,Linux 已经自带了。您所要做的就是告诉它要运行什么命令,它会为您处理重定向。
所以,如果你稍微修改一下你的命令,你可以很容易地做到这一点。只需将单词与字符串连接在一起,在这些单词中可能包含空格或其他特殊字符时引用,然后您可以使用如下列表:
/bin/sh
, -c
,{your new string here} > /some/file
Et voila,写入磁盘的内容。:)
推荐阅读
- node.js - 如何从 child_process 标准输出中检索对象?
- javascript - 理解 ECMAScript 的 ReturnIfAbrupt(AbstractOperation())
- mysql - 如何单击一次将数据插入两个 MySql 表?
- wordpress - 最高限额的统一运费 - WooCommerce
- html - “问题”类型的警告:“在应与此项目关联的页面上缺少 QAPage 标记项目。”
- docker - Kubernetes-403 禁止问题
- ruby-on-rails - 在 Rails 应用程序中更新 `current_sign_in_at` 和 `last_sign_in_at`
- php - 从文件上传php读取json
- sql - 为 null 时忽略 where 子句列
- azure-api-management - 如何将 API 导入由另一个 Azure API 管理门户发布的我的 Azure API 管理