質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

Q&A

解決済

1回答

492閲覧

zshにおける$や""や()の意味を教えて下さい。

ryo.ino

総合スコア1

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

0グッド

0クリップ

投稿2023/01/22 17:50

概要

下記2つのコードの意味の違いがわかりません。
①:
curl google.com
②:
"$(curl google.com)"

質問の詳細

上記①、②のコードを実行すると得られる結果が異なります。
"$()"をつけることによって、コードにどのような意味が加わるのかをご教示頂けますと幸いです。

  • 質問①シェルにおける$の意味を教えて下さい。
  • 質問②シェルにおける""の意味を教えて下さい。
  • 質問③シェルにおける()の意味を教えて下さい。

理解していること

  • curlが様々なプロトコルを用いてデータの送受信を行うソフトウェアであること。
  • 上記①、②はHTTPリクエストであり、HTTPレスポンスはターミナル上に表示されること。

該当のソースコード

bash

12- リクエスト 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 1314- リクエスト 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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dameo

2023/01/22 20:05

man zshから全部読んでと言いたいところだけど、zshは量が多いんですよね。 macだとデフォルトがzshなのもあってさらにそう言いにくいです。 zshはbourne shellから進化を重ねた高機能シェルで、bashよりも高機能で玄人好みなshellです。 $()機能はbourne shellにはない機能ですが、後継shellの大半にはあります。 普通は hoge=$(ls -1) とか使います。ちなみにbourne shell的な書き方だと hoge=`ls -1` になります。 googleで検索する場合は "$()" shell みたいな感じで検索するといいでしょう。 調べてなぜそうなったのか考えてみてください。
ryo.ino

2023/01/23 16:14

ご丁寧にご回答ありがとうございます! - zshってbourne shellから進化したシェルだったんですね。 - なるほど、$()について理解できました! いろいろ、教えてくださり、ありがとうございました。 man zshの存在すら知らなかったので、次zshで不明な点がでたら参考にしてみます!
guest

回答1

0

ベストアンサー

$(コマンド 引数) は、その場所に「コマンド 引数」の実行結果の標準出力を埋め込みます。 "" は単に引用符で、囲まれた部分をコマンドラインとして分割せずに1つのトークンとして扱います。

後半の実行例ではcurlの実行結果の標準出力 <HTML><HEAD>... をコマンドとして実行して失敗しているわけです。

man zshexpnCOMMAND SUBSTITUTION の節を読みましょう。

投稿2023/01/22 21:27

int32_t

総合スコア20659

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryo.ino

2023/01/23 16:16

ご回答ありがとうございます! なるほど、めちゃめちゃ分かりやすいです。 $()、""、コマンドライン、トークンについて理解できました! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問