概要
下記2つのコードの意味の違いがわかりません。
①:
curl google.com
②:
"$(curl google.com)"
質問の詳細
上記①、②のコードを実行すると得られる結果が異なります。
"$()"をつけることによって、コードにどのような意味が加わるのかをご教示頂けますと幸いです。
- 質問①シェルにおける$の意味を教えて下さい。
- 質問②シェルにおける""の意味を教えて下さい。
- 質問③シェルにおける()の意味を教えて下さい。
理解していること
- curlが様々なプロトコルを用いてデータの送受信を行うソフトウェアであること。
- 上記①、②はHTTPリクエストであり、HTTPレスポンスはターミナル上に表示されること。
該当のソースコード
bash
1① 2- リクエスト 3curl google.com 4- レスポンス 5<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> 6<TITLE>301 Moved</TITLE></HEAD><BODY> 7<H1>301 Moved</H1> 8The document has moved 9<A HREF="http://www.google.com/">here</A>. 10</BODY></HTML> 11 12 13② 14- リクエスト 15"$(curl google.com)" 16- レスポンス 17% Total % Received % Xferd Average Speed Time Time Time Current 18 Dload Upload Total Spent Left Speed 19100 219 100 219 0 0 2992 0 --:--:-- --:--:-- --:--:-- 3369 20zsh: no such file or directory: <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">\n<TITLE>301 Moved</TITLE></HEAD><BODY>\n<H1>301 Moved</H1>\nThe document has moved\n<A HREF="http://www.google.com/">here</A>.^M\n</BODY></HTML>^M
補足情報(FW/ツールのバージョンなど)
MacOS
Intel
Ventura13.1
デフォルトのシェル→zsh
man zshから全部読んでと言いたいところだけど、zshは量が多いんですよね。
macだとデフォルトがzshなのもあってさらにそう言いにくいです。
zshはbourne shellから進化を重ねた高機能シェルで、bashよりも高機能で玄人好みなshellです。
$()機能はbourne shellにはない機能ですが、後継shellの大半にはあります。
普通は
hoge=$(ls -1)
とか使います。ちなみにbourne shell的な書き方だと
hoge=`ls -1`
になります。
googleで検索する場合は
"$()" shell
みたいな感じで検索するといいでしょう。
調べてなぜそうなったのか考えてみてください。
ご丁寧にご回答ありがとうございます!
- zshってbourne shellから進化したシェルだったんですね。
- なるほど、$()について理解できました!
いろいろ、教えてくださり、ありがとうございました。
man zshの存在すら知らなかったので、次zshで不明な点がでたら参考にしてみます!
回答1件
あなたの回答
tips
プレビュー