wiki:TipAndDoc/console/shell

Version 6 (modified by mitty, 9 years ago) (diff)

--

  • シグナルと trap コマンド - UNIX & Linux コマンド・シェルスクリプト リファレンス

    trap コマンドの応用 2

    • trap_exit.sh
      #!/bin/bash
      
      # EXITシグナルをtrapして終了メッセージを指定する。
      trap "echo '`basename $0`を終了します.'" EXIT
      
      # 他のシグナルもtrapしておく。
      trap "echo '他のシグナルをtrapしました。'" 1 2 3 15
      
      # Ctrl+Cで終了するテストのためにsleepしておく。
      sleep 10
      
      exit 0
      
      $ ./trap_exit.sh
      trap_exit.shを終了します.
      ※↑終了時に EXIT シグナルを trap したメッセージが表示されている。
      
      $ ./trap_exit.sh
      ※ ここで Ctrl+c を押す。
      他のシグナルをtrapしました。
      trap_exit.shを終了します.
      ※↑INT シグナルで終了した場合も EXIT シグナルは trap できる。
      
  • bash - How to use > in an xargs command? - Stack Overflow
    • {} の使い方の例(?)
  • ディレクトリだけを見つける
    • $ find -exec sh -c '[ -d "$1" ] && echo "$1"' -- {} \;
      .
      ./.ssh
      ./.cache
      ./.aptitude
      ./.debtags
      ./.screen
      ./public_html
      
      ...
      
  • シンボリックリンクを見つける
    • $ find /etc/apache2/ -exec sh -c '[ -L "$1" ] && echo "$1"' -- {} \;
      /etc/apache2/mods-enabled/alias.conf
      /etc/apache2/mods-enabled/alias.load
      /etc/apache2/mods-enabled/autoindex.conf
      /etc/apache2/mods-enabled/autoindex.load
      /etc/apache2/mods-enabled/dir.conf
      /etc/apache2/mods-enabled/dir.load
      
      ...
      
  • shとbashでの変数内の文字列置換など - ろば電子が詰まっている
    ${変数名#パターン} → 前方一致でのマッチ部分削除(最短マッチ)
    ${変数名##パターン} → 前方一致でのマッチ部分削除(最長マッチ)
    ${変数名%パターン} → 後方一致でのマッチ部分削除(最短マッチ)
    ${変数名%%パターン} → 後方一致でのマッチ部分削除(最長マッチ)
    ${変数名/置換前文字列/置換後文字列} → 文字列置換(最初にマッチしたもののみ)
    ${変数名//置換前文字列/置換後文字列} → 文字列置換(マッチしたものすべて)