コメント | #で表現する。決して/* */としないこと。下手すると/*(ディレクトリ全て)で解釈される恐れ有。 複数行をコメントアウトしたい場合には、以下のようにヒアドキュメントを使うと実現できる。 << 任意の名前 コメントアウトしたい数行 任意の名前 |
サブシェルでの変数使用 | exportを使うとサブシェルでも該当の変数を使うことが出来る |
インタプリタの指定 | shebang(シバン)というもので指定する。#!/bin/bashや#!/bin/sh等を1行目に記述する。 配列を使いたい時は#!/bin/bashを指定する。また、シェルの実行オプションを指定できるので-Ceuオプションはつけておきたい(https://qiita.com/dskshmz/items/c01f29f8398cc7f5c396)。 |
シェルの実行オプションをシェル全体でなく、一部だけにする | set -オプションでオプション有効。set +オプションでオプション無効にする。オプションの一覧はhttp://tech.nikkeibp.co.jp/it/article/COLUMN/20060227/230881/参照。e,n,u,xオプションあたりは使いやすいかも。 |
ユーザ入力の受付 | read 変数名とすると、変数名にキーボードで標準入力された結果が格納される。具体的な使い方はreadについてを参照 |
対話型のコマンドにたいしても、自動化する | expectを使用すると良い。(yum install expectが必要) |
ディレクトリまとめて系 | ls | while read f; do $f(1ファイル)ごとの処理;doneはシェル芸で出てきやすい技。 |
数値の扱われ方 | 0から始まる数値は8進数として扱われる。10進数として扱うためには10#数値のように記載する必要がある。 |
実行結果のファイル書き出し | exec > ファイル名とすると、以降の実行結果がファイル書き出しされる |
可変の引数に対応する | shiftを使うと後続の引数をずらしていくことができる |
sh単体で実行可能にする | chmod +xをスクリプトに対し行う。 |
シェル芸的なものを解読する | https://explainshell.com/を使ってみよう |