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

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

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

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

zsh

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

Q&A

解決済

1回答

419閲覧

ワンライナーのシェルコマンドの解説をお願いしたいです。(zsh)

asapan

総合スコア60

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

zsh

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

0グッド

0クリップ

投稿2022/05/19 09:32

編集2022/05/19 09:32

qiita の記事(https://qiita.com/k_ui/items/b02b93e3af13023c0bfd )で、次のようなシェルのコマンドがあります。

for c in {000..255}; do echo -n "\e[38;5;${c}m $c" ; [ $(($c%16)) -eq 15 ] && echo;done;echo

このコマンドの真ん中部分

echo -n "\e[38;5;${c}m $c" ; [ $(($c%16)) -eq 15 ] && echo;

が理解できていません。

まず "\e[38;5;${c}m $c" は何がどうなっているのでしょうか?

  • \e は何?
  • [ が左側だけあるのはなぜ? ] はいらない?
  • 38,5 は何?
  • m とは?

また後半の[ $(($c%16)) -eq 15 ] && echo に関しても同様です。

どなたか、細かい解説をお願いできないでしょうか?
どうかよろしくお願いします。

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

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

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

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

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

Zuishin

2022/05/19 10:28

「エスケープシーケンス」を調べてみてください。
guest

回答1

0

ベストアンサー

\eはESCという制御文字です。ESCキーを押した時に発生する文字。
\eからmまでは、「ANSIエスケープシーケンス」という画面制御(カーソルを動かしたり、文字に色を付けたり)のための文字列です。詳しくは「ANSIエスケープシーケンス」で検索しましょう。
mなので色の指定ですね。

[ $(($c%16)) -eq 15 ] && echo

&&は、[ $(($c%16)) -eq 15 ]といコマンドが終了コード0(正常終了ともいう)の場合に echoコマンドを実行するというシェルの基本構文です。
[コマンドは知ってますよね?
$((数式))は算術計算をしてその結果の数値を表す文字列です。
%は剰余演算子(余りを求める)。
つまり、「$cを16で割った余りが15ならばechoを実行する」という意味です。

投稿2022/05/19 11:05

otn

総合スコア84505

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

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

asapan

2022/05/20 05:56 編集

完全に理解することができました。本当にありがとうございます! ANSIエスケープシーケンスを知ることができてよかったです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問