次のコマンドを受け取りました。
curl -H 'Content-Type: application/json' -X POST -d '{"host": "'$(hostname)'"}' http://sitename.com/update.php
期待どおりに動作しますが、送信しようとすると稼働時間代わりに出力CPU名私は得る:
curl: (6) Could not resolve host: 19:12; Name or service not known
curl: (6) Could not resolve host: up; Name or service not known
curl: (7) Failed to connect to 0.0.0.4: Invalid argument
curl: (6) Could not resolve host: days,; Name or service not known
curl: (6) Could not resolve host: 5:57,; Name or service not known
curl: (7) Failed to connect to 0.0.0.3: Invalid argument
curl: (6) Could not resolve host: users,; Name or service not known
curl: (6) Could not resolve host: load; Name or service not known
curl: (6) Could not resolve host: average; Name or service not known
curl: (6) Could not resolve host: 0.07,; Name or service not known
curl: (6) Could not resolve host: 0.05,; Name or service not known
curl: (3) [globbing] unmatched close brace/bracket at pos 6
これがスペースによって引き起こされるのは明らかですが、どうすれば削除できますか?
スペースを削除できますアッ:
curl -H 'Content-Type: application/json' -X POST -d '{"uptime": "'$(uptime | awk '{print $3$4}')'"}' http://sitename.com/update.php
「4日」がかかりますが、より良い解決策が必要です。 :D
答え1
1種類の参照を使用する方が簡単で、問題を解決します。
curl -H "Content-Type: application/json" -X POST -d "{\"uptime\": \"$(uptime)\"}" "http://sitename.com/update.php"
または、2つの参照タイプを使用できますが、あまりエレガントです。
curl -H 'Content-Type: application/json' -X POST -d '{"uptime": "'"$(uptime)"'"}' 'http://sitename.com/update.php'