我一直在设置一个脚本来与 haste-server 一起使用。这需要管道或文件输入(tail /var/log/messages | haste
和haste < /path/to/file.txt
)并将其提交到服务器,然后服务器在我的终端中输出 a 。见下文:
#!/bin/bash
url="http://hastebin.com"
key="$(curl --silent --data-binary @/dev/fd/0 $url/documents | cut -d "\"" -f 4)"
echo "$url/$key"
它工作得很好,但是它在输入中添加了一个尾随新行。我怎样才能阅读@/dev/fd/0
以删除\n
新行?
编辑: 这是我的已完成的脚本用于提交修剪换行符的紧急操作:
#!/usr/bin/env bash
url="http://hastebin.com"
data=$(< /dev/fd/0)
key="$(printf "%s" "$data" | curl -X POST -s --data-binary @- "$url/documents" | cut -d "\\"" -f 4)"
echo "$url/$key"
答案1
通过“echo”命令避免换行
而不是echo
使用echo -n
.
如果这不起作用(例如,在带有/bin/sh
as shell 的 OSX 上),或者如果您想让脚本独立于它在哪个 shell 下运行,请使用/bin/echo -n
.
避免“有效负载”中的换行符(此处:“$key”)
使用 更改输出换行符tr
,例如
echo "$url/$key" | tr '\n' '|'