タグ

Linuxとbashに関するsatoshieのブックマーク (6)

  • bashの機能いろいろ

    シェルスクリプトを書いていると「それはbash独自機能だから」「POSIXシェルには無い機能だから」と言われることがよくあります。だいたいは「それみんな使ってるのでPOSIXで標準化されてると思った」といったものなのですが、記事では便利なものから「え、それやるくらいならPythonでよくない?」まで、bashの機能を紹介しようと思います。 for文でC言語っぽくループを回す シェルスクリプトでfor文といえばfor i in $(seq 10)とかをよく使いますが、bashだと以下のように書けます。

    bashの機能いろいろ
  • 【Linux】シェルスクリプトにおける && と || の違い - Qiita

    複数コマンドをAND演算で実行する && bashシェルスクリプト上では && はAND制御演算子である。 以下の場合、command1が成功したらcommand2を実行する。 エラーが起こった時の挙動 ; でコマンドを連結する場合、コマンド1がエラーであっても、次のコマンドが実行されるが、 && で連結した場合はエラーが起きた時点で動作が停止する。 複数コマンドをOR演算で実行する || || はOR制御演算子である。 指定したコマンド1が異常終了した時に、それに対処する形でコマンド2を実行できるので、 主に事後のエラー処理などを行なう時に使える。 以下の場合、command1が失敗した場合command2を実行します。

    【Linux】シェルスクリプトにおける && と || の違い - Qiita
  • 先頭0埋めの値の演算 - Qiita

    概要 bashのfor文で、1ずつ加算し、 演算後、2桁の数値になるように先頭を0埋めした値 (欲しい出力は01,02,03,04,05,....10,11,12 というかんじ) を出力させるということをしたかった。 そのときの試行錯誤3つをまとめたもの まとめ 1.先頭0埋めの数値に加算すると通常の数値になる、 2.$((a+b))の演算では、先頭0埋めの数値は8進数とみなされ、08以上の値への加算ができない 3.exprを使うと、先頭0埋めの数値も10進数として計算可能 その1 先頭を0埋めした数値に加算をする。 #!/bin/bash id=`printf %02d 6` #2桁になるよう1桁のものは0埋めする、ここでは'06' echo $id for i in ` seq 1 6` do id=$((id + 1)) done 結果: 最初のechoでは、0埋めの$idが出力され

    先頭0埋めの値の演算 - Qiita
  • Bashでいろいろループする - Qiita

    items=( "altair" "betelgeuse" "canopus" ) for item in "${items[@]}" ; do echo "[ ${item} ]" done

    Bashでいろいろループする - Qiita
  • 【Linux】シェルスクリプトによる文字列処理:置換や削除をする方法

    Linuxではテキストデータを良く使う。それらのテキストデータに対して置換や削除などの処理をしたいことがよくあるだろう。 このページではそういった処理をシェルスクリプトで効率的に実現する方法について紹介する。 シェルスクリプトによる置換や削除 Linuxに触れていると、テキストデータを取り扱うことが多くある。設定ファイルなどはほぼテキストデータでなりたっている。また標準出力されるものをテキストデータとして保存することも容易だ。テキストデータと向き合う時間はおそらくWindowsよりも長いはずだ。 そんなLinuxに触れていると、「この文字列をこの文字列に一括で置き換えたい」「この文字列をすべて削除したい」といったオーダーに出会う。 例えばスクリプトを使って文字列を置換し、様々な設定を自動化するということも可能だろう。このページではそういった「シェルスクリプトでの文字列処理」を取り上げる。

    【Linux】シェルスクリプトによる文字列処理:置換や削除をする方法
  • Linuxで、bash プロンプトを素敵で実用的なものに変更する

    原文は、こちらです。 大事な情報をすべて含むような bash 用のプロンプトを作成しましょう。もちろん、同時に見た目も大事です。一日のほぼ全部をコンピューターの前に座って過ごすのですから、プロンプトの見た目も大事です。設定の変更を速やかにテストしたり、即座に変更を取り消したりする方法や、情報の見た目を変更したり、ユーザーごとにカスタマイズしたり、複数行のプロンプトを作成したりする方法を学びます。 私は SSH セッション用に別プロンプトを用意しているため、異なる端末からコマンドを投入するという過ちを防止できます。もちろんサーバーが壊れていないことが前提です。~/.bashrc に以下を挿入します。 if [ -n "$SSH_CLIENT" ]; then text=" ssh-session" fi export PS1='\[\e[1;32m\]\u@\h:\w${text}$\[\e

  • 1