シェルスクリプトとは: 初心者向けの解説

UB3/informatics/mac/shell

このページの最終更新日: 2019/11/27


  1. 概要: シェルスクリプトとは
  2. シェルスクリプトについてのメモ

広告

概要: シェルスクリプトとは

基本的に MacLinux および Unix の全てに当てはまる説明なので、とりあえず区別せずに書く。これらのシステムは、図のような構造になっている。


コンピューターの中心部には、カーネル kernel がある。

ターミナルというプログラムにコマンドを入力することで、さまざまな操作を行うことができる。ここでターミナルに打ち込む言語を シェル shell という。

プログラミング言語のうち、比較的簡単で、複雑なプログラミングには向かないものを スクリプト言語 と呼ぶ。シェルは、一般にスクリプト言語に分類される。

ターミナルの使い方に自信がない人は、ターミナルのページ を先に読むことをお勧めする。

このコマンド操作を連続して行いたい場合、

  1. あるファイルに複数のコマンドを書き込み、
  2. そのファイルを実行する

という手順を踏むことになる。この一連のコマンドをシェルスクリプトといい、vi エディタはシェルスクリプトを編集するためのエディタの一つである。


広告

シェルスクリプトについてのメモ

とりあえずのメモ欄。内容がまとまってきたら、新しいページを作成予定。

  • for とかで変数を記述するとき、変数名は常に中括弧 { } でくくっておくようにしたい。中括弧がなくても動く場合が多いが、変数周辺の記述によってはおかしなことになる。中括弧をつけておいて損はない、という感じ。
  • 解析結果をファイルに保存するときは、アウトプットのオプションを使う場合と、> を使う場合がある。> result.out のように指定する。for loop や while read line で回すと上書きになってしまうので、>> result.out とする。> を 2 つつけると、ファイルの後ろに追記していくという意味になる。
  • sh ファイルの中で cd でパスを変更しても、sh ファイルの実行が終わると元のフォルダに戻ってくる。
  • コマンドの結果を変数に代入したい場合。いくつか方法があるが、例えば 変数=$(コマンド) とする方法がある (Ref)。
  • pwd の結果を変数に代入したスクリプトを書いたが、${PATH} および ${CURDIR} という名前は使わない方がいい。デフォルトの変数がこの名前であるようで、おかしな結果になる。${DIR} で大丈夫だった。

Windows Command Prompt の場合は、.bat という拡張子がこれにあたる。

  • 最初にファイルを作るときは、echo abc > test.bat などのように、コマンドプロンプトから作ると問題が起きにくいだろう。これは Mac でも同様で、echo abc > test.sh として作る方が、テキストエディットで作って拡張子を変えるよりも良い。ときどき、勝手に拡張子を足すような設定になっている場合があるため。
  • sh ファイルは sh コマンドから実行するが、Windows では .bat のファイル名がそのままコマンドになる。または call コマンドで実行。Notepad で編集できる。
  • ワイルドカード * は、Windows でも同様に使える。
  • echo コマンドを batch ファイルに入れるとき、いちいちコマンドプロンプトに コマンドの内容が出てくるのがうっとおしい。コマンドの前に @ を置くことで、これをオフにできる (1)。

広告

References

  1. エコー機能のON/OFFを切り替える (ECHO). Link: Last access 2019/10/17.

コメント欄

各ページのコメント欄を復活させました。スパム対策のため、以下の禁止ワードが含まれるコメントは表示されないように設定しています。レイアウトなどは引き続き改善していきます。「管理人への質問」「フォーラム」へのバナーも引き続きご利用下さい。

禁止ワード: http, the, м (ロシア語のフォントです)


このページにコメント

Name:


Comment:



これまでに投稿されたコメント

Date Name Comment