ターミナルフライデー:バッシュ[キー拡張]

まず、先週の金曜日に投稿を書くことができなかったので、お詫び申し上げます。今日は、失われた日を補うために追加します。 🙂

ブレース拡張

スペイン語では、キーの拡張は、 Cシェル、これにより、中括弧内に入力された文字間の組み合わせが生成されます。使用される順序は左から右です。 それほど複雑ではありませんが、GNU / Linuxのツアーで非常に役立つオプションです。

例:

$ echo a {1,2,3} a1 a2 a3

カンマと一緒に使用する場合 (、) 値aと中括弧内の値の組み合わせを生成します。 キーの外側に値がない場合は、キーに含まれる各値がXNUMX回だけ表示されます。

$ echo {a、b、c} abc

その使用法はまったく複雑ではありません。フォルダ内に多くのディレクトリを作成するなど、他のより一般的な例があります。

$ mkdir〜 / Jobs / {XNUMX、XNUMX、XNUMX、XNUMX、XNUMX}

これにより、jobsフォルダー内に5つのフォルダーが作成されます。これは、一度にXNUMXつのコマンドを入力するようなものです。 XNUMXつのディレクトリを作成します。

XNUMX点拡大あり .. これにより、初期値から最終値までの一連の数字または文字が作成されます。文字付きの数字は使用しないでください。

$ echo {1..5} #Correct 1 2 3 4 5 $ echo {a..f} #Correct abcdf $ echo {a..5} #Incorrect {a..5}#私は決して得られないと思う手紙のこの青い色に慣れている

サイクルを作成することで時間を節約できます for

#$ for((i = 1; i <= 5; i ++));を書く代わりに「私の番号$ i」をエコーし​​ます。 完了マイナンバー1マイナンバー2マイナンバー3マイナンバー4マイナンバー5#ブレース展開を使用してコードを保存します。 {1..5}のiの$; do echo "My number $ i; done My number 1 My number 2 My number 3 My number 4 My number 5#もちろん、出力は異なりますが使用できます。$ echo" My number "{1..5}私の番号1私の番号2私の番号3私の番号4私の番号5

コンセプトは明確だと思いますが、ハハ今は組み合わせ可能でネストされているとだけコメントします。これはどういう意味ですか?
XNUMXつまたは複数のキーを結合できる組み合わせ可能

$ echo {a..c} {1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3

多くの人が想像するようにネストすると、拡張キー内で拡張キーを使用できます

$ echo {a、c {1..3}、d} a c1 c2 c3 d

そして最後に バッシングナッシング 値を増やすことができます。

$ echo {0..20..2} 0 2 4 6 8 10 12 14 16 18 20

今日はこれですべてです。読んでくれてありがとう🙂

余分

ローカルビンを作成する方法

私が言うとき ビン ローカル私たちが独自のスクリプトを持っていて、それらを簡単なコマンドとして実行できるディレクトリを意味します...

これを実現するのは比較的簡単です。最初に行うことは、スクリプトを保存するディレクトリを作成することです。

mkdir〜 / .bin#この例では非表示になります

これで、スクリプトを保存するフォルダーができましたが、新しい.binのパスを$ PATHに追加するまで機能しません。
このためにファイルが編集されます バッシュプロファイル、および行が追加されます。

export PATH = $ PATH:〜/ .bin

そして、ローカルビンを作成するのに十分な出来上がりです。もちろん、簡単なスクリプトを作成する例では、必要に応じてルート権限を要求します。

#!/ bin / bash echo "こんにちは$ 1、お元気ですか?"

次の名前で保存します こんにちは
スクリプトには実行権限が与えられており、端末から呼び出すだけで十分です。

$ hello wada#メッセージ「Hellowada、お元気ですか?」が表示されます。

したがって、この簡単なトリックを使用すると、スクリプトをより高速に実行できます

今日は元気な人は以上です🙂
PS間違いでごめんなさい、もしあれば、私の目はすでに閉じていますハハハ😀


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   ハンター

    私は長い間bashの問題に取り組んできましたが、これらのブレースの拡張については理解していませんでした。

    パストリックでは、Fedoraはデフォルトでこのようなことをしますが、「〜/ .local / bin」で、私がJessieに持ってきたbash_profileからのスニペットを見てください。

    PATH = $ PATH:$ HOME / .local / bin:$ HOME / bin
    エクスポートパス

    1.    リカルド

      私はいくつかの懸念があります:
      1.ポイントで拡張して1つの間隔を彼に与えるにはどうすればよいですか。 年齢{24,55..90..1}で、年齢を24歳から55歳に拡大し、XNUMX歳からXNUMX歳まで続けます。 私がしたようにそれはうまくいきませんでした。 どうして?

      2.最初の値をnullにして、番号付けを続行する場合:
      wget: http://manga.favorito /画像 http://manga.favorito/imagen1
      私は次の方法を試しましたが、wgetは取得しませんでした: http://manga.favorito/imagen{、1..42}私によると、名前を番号なしで残し、1から42まで番号を付け続ける必要がありましたが、そうではありませんでした。 どうして?

    2.    和田

      確かに、一部のディストリビューションは.binを持っているか持っていましたが、それは誰もがどのディストリビューションでもそれを実行できることを理解して確認できるようにするためです。

  2.   デモ

    Linuxの世界とそのセキュリティへのこれらの知識の貢献に非常に優れています。ある金曜日に、端末でペンドライブをフォーマットし、端末で無料システムのISO DVD / CDイメージを書き込む方法を読んでいただければ幸いです。

    1.    和田

      あなたの言葉をありがとう兄弟😀私は来週の金曜日にその投稿をすることを約束します。 そして、私はVimのカスタマイズについてXNUMXつしなければなりませんが、Vimだけが含まれると彼らに思わせたくありませんでした。

  3.   エドアルドオル

    このスタイルのチュートリアルを公開しているいくつかのブログを数えて、私が長い間読んだ中で最高の優れた端末記事。 どうもありがとう!!

    1.    和田

      どうもありがとうございました😀私はついていくように努めます。

  4.   ジュアンリ

    ローカルビンの優れたヒント!
    ご挨拶!

    1.    和田

      素晴らしい、それがあなたに役立つことは素晴らしいです、兄弟を追い越してくれてありがとう😀

  5.   ギスカード

    とても良い! これについてはわかりません。 ありがとう🙂

    1.    和田

      それを読むために時間を割いてくれてありがとう兄弟を歓迎します😀

  6.   リカルド

    私はいくつかの懸念があります:
    1.ポイントで拡張して1つの間隔を彼に与えるにはどうすればよいですか。 年齢{24,55..90..1}で、年齢を24歳から55歳に拡大し、XNUMX歳からXNUMX歳まで続けます。 私がしたようにそれはうまくいきませんでした。 どうして?

    2.最初の値をnullにして、番号付けを続行する場合:
    wget: http://manga.favorito/imagen http://manga.favorito/imagen1

    私は次の方法を試しましたが、wgetは取得しませんでした: http://manga.favorito/imagen{、1..42}私によると、名前を番号なしで残し、1から42まで番号を付け続ける必要がありましたが、そうではありませんでした。 どうして?
    *申し訳ありませんが、最初の投稿を回答として入れましたが、一部間違っていました

    1.    和田

      1.-あなたの論理は間違っていますあなたはそれを入れ子にする必要があります $ echo {{1..24},{55..90}}

      2.-前のものと同じ..。 $ echo "URL"{,{1..42}}

      兄弟を心配しないでください、私たちは私たちを助けるためにここにいます🙂

  7.   jvk85321

    forをechoに置き換えると、次のようになります。

    echo "私の番号" {1..5} $ '\ n' | sed -e:a -e '$!n; s / \ n / \ n /; ta' | sed -e:a -e '$!n; s / 5 \ n / 5 /; ta'

    しかし、私はprintfが好きです

    printf "I、I%d \ n" {1..5}

    キー拡張の同じ概念を使用します

    重なりあっ
    jvk85321

    1.    jvk85321

      ターミナルボックスはどのように配置しますか????

      重なりあっ
      jvk85321

  8.   jvk85321

    コードタグが機能するかどうかのテスト

    forをechoに置き換えると、次のようになります。

    echo “Mi numero “{1..5}$’\n’ | sed -e :a -e ‘$!N;s/\n /\n/;ta’ | sed -e :a -e ‘$!N;s/5\n/5/;ta’

    pero prefiero printf

    printf “Mi numero %d\n” {1..5}

    キー拡張の同じ概念を使用します

    重なりあっ
    jvk85321

    1.    jvk85321

      いくつかのバグが残っていますが、うまくいきました

      私は生きているマルコ

      おじゃまします

      重なりあっ
      jvk85321

      1.    和田

        ハハハあなたは自分で答えましたが、それがレーベルの間にあるなら 場所がない ...

        そして、の代わりに、パイプハハハハを十分に行う必要はありません:
        echo -e "Mi numero "{1..5}"\n\b"

        正直なところ、printfはスクリプトでテキストを印刷するための最良の方法であり、より移植性がありますが、伝統的にはエコーを使用します。

      2.    和田

        私はスペースを取ります! ハハハハハ

        今見てみましょう😀

      3.    和田

        ファックそれは「より小さい」コード「より大きい」「より小さい」/コード「より大きい」ハハハハ

      4.    jvk85321

        echo -eは標準ではないため、すべてのシステムで機能するとは限りません。

        乱雑にも出てきます
        jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5

        jvk@jvktos:~$
        そしてこれで
        jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        XNUMX番目の方が結果が良いと思います、ハハハ

        重なりあっ
        jvk85321

      5.    jvk85321

        これらのラベルは残念です、hehehe、それらが今うまくいくかどうか見てみましょう
        jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        そしてこれで
        jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        XNUMX番目の方が結果が良いと思います、ハハハ
        重なりあっ
        jvk85321

      6.    jvk85321

        とにかく、行の間にスペースを残してください、それで私はhtmlが嫌いです、ハハハハ

  9.   ホアキン

    優秀な! 足をたたくハハ

    キーをネストできることを知りませんでした。キーを使用しようとしたことがなかったため、コードが大幅に節約され、この方法で読みやすくなりました。 ありがとうございました!

    1.    和田

      お兄ちゃんをお越しいただきありがとうございました。お役に立ててうれしいです。

      1.    ホアキン

        アイデアを共有し、貢献するために、私たちがここにいるのは大歓迎です。 プログラミングの方法がわかりません。Bashでいくつかのことを実行し、実行したスクリプトをXNUMXつの投稿で公開しました。 これを知っていると、コードが理解しやすくなると思います。