替代 echo 的 Unix shell 命令

替代 echo 的 Unix shell 命令

我正在尝试将字符串文字输出到文件。到目前为止,我一直在尝试使用 echo 命令,但不幸的是,我发现无法输出“-n”、“-e”或“-E”(至少在不使代码复杂化的情况下无法输出)。是否有其他命令可用于输出文字字符串?

如果该命令在我所连接的远程机器上可用,那就更好了——我正在尝试更新远程端的文件。

当然,我可以简单地从客户端传递数据,但如果这样做,我需要在每次执行命令后重新连接到 SSH 服务器。

我正在使用的解决方法:

echo alabama | ssh server dd of=/tmp/alabama conv=fsync
echo china | ssh server dd of=/tmp/china conv=fsync

我想做的事:

(echo 'echo alamaba | dd of=/tmp/alabama conv=fsync'
echo 'echo china | dd of=/tmp/china conv=fsync') | ssh server /bin/sh

我正在从一个随机程序传递随机字符串,并且我想确保后一种形式可以与字符串“-e”、“-n”和“-N”一起使用

答案1

使用printf

printf '%s\n' "-n"

答案2

对于您的特定示例,您可以在此处使用 bash 字符串(请参阅 man)。而不是这样:

echo alamaba | dd of=/tmp/alabama conv=fsync

你可以这样做:

dd of=/tmp/alabama conv=fsync <<< alabama

例如尝试这个:

dd of="-e abc -N def" conv=fsync <<< "-e abc -N def"

相关内容