web-dev-qa-db-ja.com

echoに代わるUnixシェルコマンド

文字列リテラルをファイルに出力しようとしています。これまで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」で機能することを確認したいと思います

7
Moon Soon

printfを使用します:

printf '%s\n' "-n"
14
user1686

特定の例では、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"
0
icyrock.com