シェルスクリプト

bashシェルスクリプトをいろいろと

いきなり番外編bashに入力したコマンド履歴

  • ↑ or Ctrl+P(past?)前に入力したコマンドを表示
  • ↓ or Ctrl+n(new?) ↑で戻った履歴を新しい方に戻る
  • history 入力した履歴一覧
  • !番号 ○回前に入力したコマンド(番号はhistoryで確認できる)
  • !! 直前のコマンド
  • !検索文字列 (ex.!/sb) /sbで始まる始まるコマンド履歴の内、一番新しいコマンド

リダイレクト

echo -n 'now it is' > file #文字列now it isをfileへ出力
date >> file #dateをfileに追加
cat file #fileを表示

  • 実行結果

now it is 2007年 2月19日 月曜日 23:23:23 SJT

  • メモ

'' ⇒ シングルクオーテーション 囲まれた範囲を文字列とみなす。
now it is だけだと、間にスペースが入るので、引数と認識されてしまう。
echo -n ⇒ echo実行後改行しない
>> ⇒ 追加リダイレクト(fileに追加する。上書きしない。)

シングルクォーテーション、バッククォーテーション、ダブルクォーテーション

シングル'〜' -> 文字列とみなす
 ex. echo'pwd' -> pwd
バック`〜` -> コマンドとみなす
 ex. echo`pwd` -> /home/student
ダブル"〜" -> 変数を展開する。
 文字列の中に変数が入っている時など。

シェルスクリプトの実行

$ source スクリプトファイル名
$ . スクリプトファイル名
ちなみにスクリプトファイルにx属性をつけるとスクリプトファイル名だけで実行できる。

シェルを実行して実行

$csh script-file

スクリプトを実行するシェルをスクリプトファイルで指定する

ファイルの一行目に
#!プログラム名(パス)を入力する。
ex1. #!/bin\/bash
ex2. #!/bin/parl など

変数の定義

変数名=値 イコールの両側にスペースは入れない。
ex. FC6=linux

変数の展開

$をつける
ex. echo $FC6 -> linuxと表示される

※変数はbashのプロセス内でのみ有効。

定義したシェルとその子プロセスで有効

$env 変数

  • 組込変数の一覧

$set シェル変数、環境変数
$env 環境変数

  • 変数の削除

$unset 変数名

とりあえず今日はここまで。