curl
コマンドには、--data
オプション値の前に記号が付いたときにファイルの内容を置き換えるオプションがあります。@
たとえば、次のようになります。
curl -X POST --data @abc.json hostaddr.com
abc.json
ファイルの内容は投稿リクエストの本文に送信されます。このオプションは、投稿の本文が長い場合や複数行の場合に便利です。
LinuxシェルまたはLinuxシェルでzshell
これをどのように実行しますか?次の文字列をファイルパスとして処理し、その文字列をファイルの内容に置き換えるglob pattern
/がありますか?prefix operator
答え1
ほとんどの場合、これは次のとおりです。リダイレクト演算子( <
):
$ tr 'a' 'b' /path/to/file ## fails because `tr` works on streams
tr: extra operand ‘file’
Try 'tr --help' for more information.
$ tr 'a' 'b' < /path/to/file ## works because the file's contents are passed to tr
コマンド置換およびリダイレクト演算子はどちらもPOSIXによって定義されています(上記のコマンド置換リンクを参照)、ほとんどすべてのシェルで使用できます。別の関連ツールはコマンドの置き換え。作成する方法は2つあります。コマンドをバックティック()で囲むか、`command`
Orderと書くことができます$(command)
したがって、ファイルの内容を使用するには、次のように書くことができます。
command $(cat /path/to/file)
または
command `cat /path/to/file`