タグ

bashに関するjinjin252525のブックマーク (11)

  • 【シェル芸人への道】Bashの変数展開と真摯に向き合う - Qiita

    はじめに 個人的なシェル(スクリプト)あるあるなんですが、変数操作に悩んでいるとBashの 変数展開 って思った以上に色んなことができてしまうことに気がつきます。 「なんかいい感じの書き方ないかなー」 「cut, tr, sed, awk, ...、まぁできるのは間違いないんだけど」 「うーん」ググリ― (10分後) 「えっ、変数展開...?(怪訝)」ポチポチ 「...」カタカタ 「いけるやん!!!」 ってことが結構あります。皆さんもこういった経験少なからずあるのではないでしょうか。 (そして今もまさにそういう記憶・期待があるから、変数展開について少し調べている...そんなところかと推察します) 毎回調べるのも感動があっていいと思うんですが、もはや衝動を押さえきれないので 全部調べたい と思います。 Bashのバージョンは 4.3.48(1) でしたが、そうそう変わるような内容でも

    【シェル芸人への道】Bashの変数展開と真摯に向き合う - Qiita
  • インフラエンジニアとしてよく使うコマンド集 - Qiita

    私がよく使うコマンド集となります。 参考に頂けたら幸いです。 随時更新するかと思います。 コマンドを打つ前に覚えておく事 ①サーバに負荷がかかるコマンドを打つ場合、下記をコマンドの先頭に付けましょう $ ionice -c 2 -n 7 nice -n 19 # -c 2:ディスクI/Oの実行優先度をベストエフォートで実行 # -n 7:さらにこのコマンドの優先度を低くする # -n 19:プロセスの実行優先度を一番低くする

    インフラエンジニアとしてよく使うコマンド集 - Qiita
  • Bashを使ってAtCoder Beginners Contestの簡単な問題を解いてみる | にろきのメモ帳

    AtCoder Beginners Contest (ABC) において、A, B問題の速解きテンプレートを作成している人も多く見かけます。しかし、たいていはC++が主流となっています。C++では型の扱いなども問題もあるため、このような場面では型がいつの間にか変換されるような言語を用いたほうが楽であると考えられます。 さて、AtCoderでは多様な言語を選択可能で、”Bash”というものも選択可能です。ABCでもC問題以降のようなものをBashで解くのは面倒かと思いますが、A問題、B問題を速く特にあたってBashを利用することは現実味を帯びているとも考えられます。実際のコンテストの解答一覧で検索しても、実際にBashを利用してA問題やB問題を解いている参加者はちらほらいるようです。また、サーバー管理等でも、自分のやりたいことをBashで書けると便利です。 そのため、ABCのA問題、B問題の

  • historyにコマンドの実行時刻が表示されるようにする - Qiita

    作業の痕跡を探るにはhistoryコマンドが使えます。でも更に、このコマンドを実行したのは何時頃だっけ?ということを調べたくなったりします。例えば何かトラブルをやらかしてしまったときの原因調査の時とかね。ですがデフォルトでは実行時刻は分かりません。 そんな時に困ることが無いよう、普段から以下の設定をしておけばhistoryで各コマンドの実行時刻が表示出来るようになります。環境変数にexportせず単に変数をセットしておくだけでOKです。

    historyにコマンドの実行時刻が表示されるようにする - Qiita
  • bashによるシェルスクリプトの小技(2) - shibainu55日記

    前回(bashによるシェルスクリプトの小技(1))に引き続き、シェルによって自動的に値が設定される特殊な変数について紹介する。特殊な変数を参照することにより、様々な情報を取得することができる(ただし、これらの変数には自分で任意の値を設定することはできない)。 さて、まずは特殊変数を一覧でまとめてみる。お馴染みのものが多いが、最後の2つ(特に最後のPIPESTATUS)についてはきっと今まで知らなかった人もいるんじゃないだろうか。シェルの中でパイプすると途中のコマンドのリターンコード、拾えないとか思っていませんか?今回のポイントとしては、「1. PIPESTATUS変数について」と「2. 特殊変数 $@と$*の違いについて」の2点を主に説明する。 特殊変数一覧表 変数名 自動的に設定される値 $? 直前に実行されたコマンドの終了ステータスが設定される変数。正常終了の場合は「0」、異常終了の場

    bashによるシェルスクリプトの小技(2) - shibainu55日記
  • シェルスクリプトのデバッグは typeset または declare を使うと良いかも - よんちゅBlog

    はじめに つい最近知った便利なデバッグ方法 (長年シェルスクリプトを書いているのに知らなかった。これが常識だったら恥ずかしい…) シェルスクリプトのデバッグでは echo で変数の中身を見るという原始的な方法をよく使うかと思います。 いわゆる プリントデバッグ というやつですね。 もう少し詳しいデバッグが必要な場合は、 set -x と set +x でデバッグしたい部分を囲むという方法もあります。 今回は プリントデバッグ で使う echo の代わりに typeset or declare を使うと良いというお話です。 プリントデバッグは typeset or declare を使おう typeset or declare は変数宣言などでよく使うコマンドですが、変数の中身を見るのにも使えます。 echo と比べて何が良いのかというと、変数の中身はもちろん変数名や変数の型も表示してくれ、

    シェルスクリプトのデバッグは typeset または declare を使うと良いかも - よんちゅBlog
  • bashの配列を使う方法

    Guides, HowTos and Tips for Technology Geeks - The Geek Stuff 高機能シェルのひとつにbashがある。shの機能を拡張したsh系に分類されるシェルで、インタラクティブシェルとしてもシェルスクリプトとしても利用される。Linux系のディストリビューションではデフォルトでインストールされ、デフォルトのシェルに設定されていることが多い。その場合、システムの/bin/shの実態がbashになっていることもあり、/bin/shスクリプトを書いているつもりでいつの間にかbashの拡張機能を使っていることもある。 The Ultimate Bash Array Tutorial with 15 Examples - The Geek Stuffにおいてbash拡張機能のひとつである配列の機能が紹介されている。15のサンプルにわけて機能を紹介する

  • bashでハッシュ(連想配列的な意味で) - jitsu102's blog

    bash 4.*でハッシュ(連想配列)が使えるようになったので使ってみました。 標準だとbash 3.*系のディストリビューション*1が多いと思うので、使う機会はまだ少ないかもしれません。 #!/bin/bash declare -A capital # -Aでハッシュ宣言 capital["Japan"]="Tokyo" capital["France"]="Paris" capital["Italy"]="Roma" for idx in Japan France Italy; do echo ${capital[$idx]} # Tokyo Paris Roma done 一括代入する場合は、以下のような感じです。 declare -A capital capital=(["Japan"]="Tokyo" ["France"]="Pris" ["Italy"]="Roma") bas

    bashでハッシュ(連想配列的な意味で) - jitsu102's blog
  • 変数を使用する | UNIX & Linux コマンド・シェルスクリプト リファレンス

    → 他のプログラミング言語と同様に = を使用する。 シェルスクリプトでも C言語などと同様に = を使用することで変数に値を設定することができる。ただし、C言語とは違い = の前後にスペースがあってはいけない。 また、変数名の大文字と小文字は区別されるため変数 VAR と変数 var は別物として扱われる。さらにシェル変数に「型」は存在しないので、文字列や数値を区別なく設定できる。 ポイントをまとめると以下のとおりとなる。 = を使う 値の設定時は変数名の先頭に $ を付けない ($ は参照時のみ) = の前後にスペースを入れない (前後にスペースがあるとエラー) 型は存在しない (declare コマンドや typeset コマンドで似たようなことができるが推奨はしない) 変数名の大文字・小文字は区別される (VAR と var は別物) 特に「2」は初心者が犯しがちなミスなので注意す

    変数を使用する | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • if 文と test コマンド | UNIX & Linux コマンド・シェルスクリプト リファレンス

    if 文と test コマンド if 文とは? if 文とは、与えられた条件式が真のときのみ処理を行い、それ以外の場合は処理をスキップする、などといった場合に使用される条件分岐処理である。 条件式には一般的に test コマンドを用いるが、ls コマンドや grep コマンド等の他のコマンドを用いても構わない。 if 文は条件式に指定されたコマンドの終了ステータスを判定し分岐を行う。終了ステータスが「0」の場合は真、その他の場合は偽となる。 if 文 タイプ 1

    if 文と test コマンド | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • シェルスクリプトのfor文で指定した回数だけ繰り返し処理を行う | guro_chanの日記

    シェルスクリプトで繰り返し処理を行うとき必要になることが多いが、ググるさんにたずねてみても案外すぐに見つからないので記録しておくものである。1から100まで1ずつ増加させながら繰り返す場合はこんな感じ。 for i in `seq 1 1 100` do // do something done ワンライナーで書くならこうなる。 $ for i in `seq 1 1 100`; do // do something; done 1 2 (snip) 99 100 2ずつ増加させるなら`seq 1 2 100`にすれば良い。 なおwhile文でも同様のことはできるが長くなるし複雑で分かりにくい。 i=1 while [ $i -le 100 ]; do // do something i=`expr $i + 1` done ワンライナーだと見た目の複雑さがさらに増す。 $ i=1; w

  • 1