pipe - 在终端中使用 Cat 创建文件并将文件传递给另一个命令
问题描述
我有 CLI 命令,当在外部某处创建文件并将文件名输入提供给命令时,该命令效果很好。
例如:
mycli create rr --filename ./example/rule.yaml (works perfectly)
但是,假设有人没有创建文件并想在终端中创建文件,给它一个名称并将文件名传递给命令,该命令会是什么样子?
我尝试如下:
cat <<EOF | mycli create rr --filename -
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
password: password
username: username
EOF
上面的方式给出了一个错误,说没有这样的文件或目录
解决方案
像这样的东西?
export FILENAME=`mktemp`
cat <<EOF > $FILENAME
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
password: password
username: username
EOF
mycli create rr --filename $FILENAME
rm $FILENAME
export FILENAME=""
(未经测试,现在不在我的 Linux 机器上,但我猜应该可以工作)
推荐阅读
- warnings - iNEXT 警告消息:在 sqrt(var_obs) 中:产生了 NaN
- c++ - 对“fopen”的期望
- angular - 角度 DI 跳过直到达到顶层
- python - Django generics.ListAPIView 接受 POST 方法
- php - PHPmailer:错误:您必须提供至少一个收件人电子邮件地址
- php - 登录系统中的 if() 语句无法正常工作
- python - 将订阅主题中的 MQTT 数据保存在文本文件中
- python - 数据框中所有行之间的最大元素差异
- jasper-reports - 为什么LineChart中只显示一个数据?
- azure - 如何获取 Azure EventHub 深度