シェルスクリプト

正規表現の書き方を検索してたら、@ITのシェルスクリプト解説を目にし、気になったのでお試し。
メモ

  • 現在のシェルを確認するには、finger “username” → Shell: /bin/bashだった
  • シェルスクリプトは.shで保存する
  • 実行は、sh xxx.sh
  • スクリプトの1行目は、#!/bin/sh
  • スクリプトに引数を渡せる
    • $0がxxx.sh
    • $iがi番目の引数
    • $#が引数の個数
    • $*が全ての引数
  • 変数は参照するときだけ$をつける(作るときは$が不要)
    • str="Hello, World"
      echo $str
      
  • 変数を数値として扱うときはdeclareをつける
    • declare -i num
      num=10
      num=$num+1
      echo $num
      
  • 変数に対するパターンマッチは4種類ある
    • ${変数#パターン}は、変数から、パターンが最短でマッチする部分を除いた残りを返す
    • ${変数##パターン}は、変数から、パターンが最長でマッチする部分を除いた残りを返す
    • ${変数%パターン}は、???←サンプル書いたけど、動きがよくわからなかった。また後日
    • ${変数%%パターン}は、???←サンプル書いたけど、動きがよくわからなかった。また後日
  • 条件判断に使う[xxx]はtestコマンド。条件式は”man test”に詳しく載ってる。
    • testコマンド[の次に、スペースを入れずに書くと、何でかわからないけどcommand not foundとなった。
    • if [ $# -eq 0 ]
      then
          echo 引数0個
      elif [ $# -eq 1 ]
      then
          echo 引数1個
      else
          echo 引数2個以上
      fi
      
  • 繰り返しはforとwhileがある。
    • echo hello, $*
      for name in $*
      do
      	echo hello, $name
      done
      
    • path=$PATH:
      while [ $path ]
      do
      	echo ${path%%:*}
      	path=${path#*:}
      done
      

参考サイト

関連エントリー

  1. [シェルスクリプト]ファイルから1行ずつ読んで繰り返し処理をしたい
This entry was posted in 未分類 and tagged , . Bookmark the permalink.