pwd
cd dir
cd:~に移動
cd -:移動前のディレクトリに戻る
ls
ls dir:指定ディレクトリのファイル一覧表示
-l | 詳細情報を表示 |
-o | グループ名を非表示(それ以外は-lと同じ)
|
-a | .から始まるファイルを表示
|
-A | .から始まるファイルを表示(.と..は表示しない)
|
-F | /(ディレクトリ)・*(実行ファイル)・@(シンボリックリンク)を表示
|
-G | 色付け |
-@ | ファイルの拡張属性を表示(詳細はxattrコマンド)
|
-i | ファイルのinodeを表示
|
-m | ファイルを, で区切って表示
|
-R | ディレクトリの内部を再帰的に表示 |
-t | 時間で並び替え(デフォルトではmtime)
|
-u | -lの時間表示・並び替えの順番をatimeに変更
|
-c | -lの時間表示・並び替えの順番をctimeに変更
|
-U | -lの時間表示・並び替えの順番をファイル作成日時に変更(Linuxでは並び替えを無効にする)
|
| mtime | ファイルの内容が変更された日時 |
| atime | ファイルに最後にアクセスした日時 |
| ctime | ファイルの属性(アクセス権/inodeなど)が変更された日時
|
| 作成日時 | ファイルが作成された日時(OS Xのみ) |
pushd dir
別のディレクトリに移動し、戻ってくるときにpopdと合わせて使用する。
pushd
dirs
mkdir dir
-p:ディレクトリを再帰的に作成(例:mkdir -p files/img)
-m:アクセス権を指定(例:mkdir -m u+x files)
rmdir dir
du dir
-h:適切な単位をつける
-s:指定ディレクトリのみを表示(下階層のディレクトリは表示しない)
-c:指定ディレクトリの中身の合計の容量を表示
tree
Homebrewによって追加
rm file/dir
-r:ディレクトリを再帰的に削除
-f:確認をせずに削除
mv file/dir new_name/go_dir
-f:同名のファイルがある場合、上書きする
-i:同名のファイルがある場合、確認する
-u:同名のファイルがある場合、[後]が新しい場合は上書きしない
cp file/dir new_name/go_dir
-a:ディレクトリ構造や属性を保持(-pPR)
-d:シンボリックリンクの実体をコピー
-f:同名のファイルがある場合、上書きする
-i:同名のファイルがある場合、確認する
-r:ディレクトリを再帰的にコピーする
touch file
-a | アクセス日時(atime)のみ更新
|
-m | 変更日時(mtime)のみ更新
|
-c | ファイルが存在しない場合、ファイルを作成しない |
-t [[CC]YY]MMDDhhmm[.ss] | 指定日時にアクセス日時・変更日時を変更 |
-r file | 指定ファイルと同じアクセス・変更日時に変更 |
setfile file
-d mm/dd/[yy]yy [hh:mm:[:ss] | 作成日時を変更 |
-m mm/dd/[yy]yy [hh:mm:[:ss] | 変更日時(mtime)を変更
|
getfileinfo file
chmod permission file
アクセス権には[ugoa][+-][rwx]が入る。3桁の数字も使用できる。
u g o a:ユーザー・グループ・その他・すべて
+ -:権限を追加・削除
r w x:読み出し・書き込み・実行
chflags flag file
hidden, nohidden:非表示 / 表示
file file
less file
-R:色を変換
xattr command
xattr -l file:拡張属性の一覧を表示
xattr -d attr file:拡張属性を削除
open file/dir
-a app:指定アプリケーションで開く
-b bundle:com.apple.TextEdit形式
-e:テキストエディットで開く
-W:アプリケーションが終了するまでopenも終了しない
-n:アプリのコピーを起動
-R:Finderに表示
rsync file/dir go_dir
-a | ディレクトリ構造や属性を保持(-rlptgoDと同じ)
|
-r | ディレクトリを再帰的にコピー |
-l | シンボリックリンクを保持(指定しないと実体がコピーされる) |
-p | パーミッションを保持 |
-t | タイムスタンプを保持 |
-g | グループを保持(指定しないとコピーしたユーザーのものになる) |
-o | 所有者を保持(指定しないとコピーしたユーザーのものになる) |
-D | デバイスファイル(スペシャルファイル)を保持(--devices --specialsと同じ)
|
-H | ハードリンクを保持(指定しないと実体がコピーされる) |
-v | コピー中のファイル名を標準出力(-vv, -vvvとするとさらに詳細な情報を出力する)
|
-I | すべてのファイルを同期(指定しないと同じファイルサイズ・修正時間のファイルは同期しない) |
-n | 実際には同期せずに、同期後の結果をシミュレーションする |
-z | 転送時にgzip圧縮する |
-h | --progressや--statsで表示される単位をわかりやすくする
|
-u | 同期元よりも同期先のファイルの方が新しい場合、そのファイルは同期しない |
-c | 同期元と同期先のファイルの比較の際、128ビットのMD4を使用する(デフォルトではファイルサイズと変更日) |
-q | 同期中に情報を表示しない |
--delete | 同期元にないファイルが同期先にあった場合、そのファイルを削除する |
--delete-excluded | --excludeに一致しているファイルも、同期先にあった場合は削除する
|
--exclude=パターン | パターンに一致するファイルを同期しない |
--progress | 同期中にファイルの転送速度を表示 |
--partial | 転送が中断された場合に不完全なファイルを残す |
--stats | 同期終了後に統計情報を表示 |
--existing | 同期先にないファイルは同期しない(同期元に新規作成されたファイルは対象外にする) |
--ignore-existing | 同期先にあるファイルは同期しない(同期元に新規作成されたファイルのみを対象とする) |
--no-オプション | 指定オプションを無効にする(例:--no-D)
|
ローカルからローカルにコピー:
rsync -av sourcedir destdir
ローカルからリモートにコピー:
rsync -avz localdir user@host:remotedir
文字化けするときは以下をする(rsync3以上):
--iconv=UTF8-MAC,UTF-8
ln target_file/dir file/dir
-s:シンボリックリンクを作成(デフォルト:ハードリンク)
-f:同名のファイルがある場合、上書きする
-i:同名のファイルがある場合、確認する
シンボリックリンクはFinderでエイリアスとして扱われる。元ファイルがなくなるとアクセスできなくなる。
ハードリンクは片方を削除しても元ファイルは消えない。すべて削除すると元ファイルは消える。
od file
od -tx1c file:文字ごとにバイナリを表示
eyed3 file
eyed3 --remove-all file
zip file/dir new_file/dir
-e:暗号化
-r:ディレクトリを再帰的に処理
-q:処理内容を非表示
unzip file
zipcloak file
tar [zjJ][xct]vf file.tar file
z:gzip(.tar.gz)
j:bzip2(.tar.bz2)
J:lzma(.tar.xz)
x:解凍(extract)
c:圧縮(create)
t:一覧(list)
v:詳細表示(verbose)
f:ファイル指定(file)
jar [xct]vf file.jar file
x:解凍(extract)
c:圧縮(create)
t:一覧(list)
v:詳細表示(verbose)
f:ファイル指定(file)
openssl command
openssl enc -e -aes-[128|192|256]-cbc -in in_file -out out_file | AESで暗号化 |
openssl enc -d -aes-[128|192|256]-cbc -in in_file -out out_file | AESで復号化 |
openssl dgst -[md5|sha256|sha512] file | ファイルのハッシュを表示 |
元のディレクトリ構造:
bar/
foo/
├── a
├── b
└── c
cp foo bar | エラー(foo/ is a directory) | |||
cp foo bar/
| ||||
cp foo/ bar
| ||||
cp foo/ bar/
| ||||
cp foo/* bar | bar/a, b, c | |||
cp foo/* bar/
| ||||
cp -r foo bar | bar/foo/a, b, c | |||
cp -r foo bar/
| ||||
cp -r foo/ bar | bar/a, b, c | |||
cp -r foo/ bar/
| ||||
mv foo baz | foo/→baz/ | |
mv foo baz/
| ||
mv foo/ bar | bar/foo | |
mv foo/ bar/
| ||
rm foo | エラー(foo: is a directory) | |
rm foo/
| ||
rm foo/* | foo/a, b, c→foo/ | |
rm -r foo | foo→削除 | |
rm -r foo/
| ||
find dir
-name "word":ファイル名一致(-name "*[文字列]*":ファイル名を含む)
-size [+-][size][ckMG]:ファイルサイズ(+-は以上, 以下、ckMGはByte, KB, MB, GB)
-atime [+-][time][smhdw]:最終アクセス日時(smhdwは秒, 分, 時間, 日, 週)
-mtime [+-][time][smhdw]:最終更新日時
mdfind dir
-name "[文字列]":ファイル名を含む
-onlyin [ディレクトリ名]:指定ディレクトリ内を検索
locate word
データベースを更新するにはsudo /usr/libexec/locate.updatedbを実行する
alias:updatedb=sudo /usr/libexec/locate.updatedb
ほとんどのものは ファイル名 を省略可能。その場合標準入力から入力する。
head -number file
tail [-+]num file
-:ファイルの末尾指定行数を表示
+:ファイルの指定行以降を表示
cat file
ファイル名をスペースで区切り、複数指定すると、連結することができる。
-n:行番号を付加
grep "word" file
-v:マッチしない行を表示
-c:マッチした行数を表示
-[行数]:マッチした行の前後の指定行数を表示
-A:マッチした行の前の指定行数を表示
-B:マッチした行の後ろの指定行数を表示
正規表現も使用できる。
cut -c[num] file
-c5:5文字目
-c1,3:1, 3文字目
-c2-5:2〜5文字目
-c-3:先頭から3文字
-c5-:5文字目以降
sed 's/word/replaced_word/'
正規表現も使用できる。
sed -i '' 's/word/replaced_word/' file:ファイルを上書き
tr char replaced_char
tr -d [文字]:指定文字を削除
tr -s [文字]:指定文字の繰り返しを1文字にまとめる
tr a-z A-Z:すべて大文字に置換
awk '条件/処理' file
awk '{print $[列]}':各行の指定列目を出力(無指定の場合は行全体、$1〜$nはそれぞれの行を表す)
awk '{print $[列,列]}':区切り文字で区切って出力
awk '{print $[列 列]}':文字を連結して出力(スペースを間に挟まない)
awk '/[文字列]/{print $0}':指定文字列を含む行のみ出力
awk '$1=="[文字列]"{print $0}':1列目が指定文字列の行のみ出力
awk 'NR==[行]{print $0}':指定行目のときのみ出力(NRには現在処理中の行番号が代入される)
awk '/^[文字1]/{print $0}/^[文字2]/{print $0}':文字1から始まる行と文字2から始まる行を出力
awk -F',' '{print}':入力区切り文字を変更(デフォルトは1文字以上の連続するスペース/タブ・正規表現も使用できる)
awk -F '[(,{}]' '{print}':入力区切り文字を複数指定(( , { }が例では指定されている)
sort file
-b:行頭の空白を無視
-f:大文字小文字を区別しない
-r:降順
-u:重複行を削除
-n:先頭の数字や記号を数値とみなす(-bも設定される)
-k 列1[,列2]:指定列を基準にしてソート
-t 区切り文字:区切り文字を指定
LANG=lang sort fileとすると言語を指定できる。
C:文字コード順(速度はen_US.UTF8と同じ)
en_US.UTF8:文字コード順(速度はCと同じ)
ja_JP.UTF-8:アルファベットはアルファベット順。それ以外は長さで比較し、同じだった場合は文字コード順。(最も遅い)
wc file
-l:行数のみ
-w:単語数のみ
-c:バイト数のみ
diff fileA fileB
uniq file
nkf file
-g:文字コード確認
-w:UTF-8(BOMあり)に変換
-w8:UTF-8(BOMなし)に変換
-s:Shift-JISに変換
-e:EUCに変換
-j:JISに変換
kakasi -[option][replaced_option]
a:アスキー文字(アルファベット)
H:ひらがな
K:カタカナ
J:漢字
標準入力から入力する。文字化けする場合はnkfを挟む。
xpath file xml_path
xpath a.xml /html/body/h1:<html><body><h1>test</h1></body></html>というHTMLのh1を出力
-w:UTF-8(BOMあり)に変換
-w8:UTF-8(BOMなし)に変換
base64
-D:デコード
man command
which command
aliasが設定されている場合も元コマンドのパスを返す。
type command
aliasが設定されている場合はaliasのコマンドを返す。
time command
history
-c:履歴を削除
curl URL
img[000-009].jpg:img000.jpgからimg009.jpgまでダウンロードする
img{004,008}.jpg:img004.jpgとimg008.jpgをダウンロードする
-o [ファイル名]:ファイルを保存(初期設定では出力のみ)
-O:URL上のファイル名で保存
-i:HTTPヘッダー情報も表示
-I:HTTPヘッダー情報のみ表示
-#:プログレスメータではなくプログレスバーを表示
-s:プログレスメータを非表示
wget URL
-O [ファイル名]:ファイル名を指定して保存(ディレクトリ指定も可能だが、存在しないとエラーになる)
-P [ディレクトリ名]:ディレクトリ名を指定して保存(存在しない場合自動で作成する)
-O -:ファイルに保存せずに、出力のみする
webkit2png URL
Homebrewによって追加
ping host/IP
ifconfig
ifconfig en1:インターフェース名で絞り込み
nslookup host
traceroute host
ホスト名とIPアドレスを結びつけるもの
DNSの前に参照される
/etc/hostsに以下の書式で書く。
IPアドレス ホスト名
例:
127.0.0.1 localhost
間には1つ以上のスペースまたはタブ文字を入れる。
ftp host
コマンド一覧
| ls | リモートls |
| cd dir | リモートcd |
| pwd | リモートpwd |
| mkdir | リモートmkdir |
| rename | リモートmv |
| !ls | ローカルls |
| lcd dir | ローカルcd |
| lpwd | ローカルpwd |
| !mkdir | ローカルmkdir |
| get file | ダウンロード |
| put file | アップロード |
| delete file | 削除 |
| ascii | asciiモード |
| binary | binaryモード |
| type | モード表示 |
| exit / bye | 切断 |
mkdir /Volumes/dir
mount_afp afp://user:pw@192.168.1.2/dir /Volumes/dir
brew command
| doctor | 診断 |
| -v | バージョン表示 |
| search [パッケージ名] | パッケージの検索 |
| install [パッケージ名] | パッケージのインストール |
| remove [パッケージ名] | パッケージのアンインストール |
| link [パッケージ名] | パッケージの有効化 |
| unlink [パッケージ名] | パッケージの無効化 |
| update | Homebrewのアップデート |
| upgrade | パッケージのアップデート |
| list | インストール済みパッケージ一覧 |
brew cask command
| install [アプリ名] | アプリをインストール |
| uninstall [アプリ名] | アプリをアンインストール |
| search [アプリ名] | アプリを検索 |
| list | インストール済みアプリ一覧 |
| cleanup | 不要なdmgファイルを削除 |
yum command
| search [パッケージ名] | パッケージの検索 |
| install [パッケージ名] | パッケージのインストール |
| remove [パッケージ名] | パッケージのアンインストール |
| update | パッケージのアップデート |
| list | インストール可能なパッケージ一覧 |
| list installed | インストール済みパッケージ一覧 |
| info [パッケージ名] | パッケージの情報を表示 |
-y:問い合わせにすべてyと答える
UNIXで使用される。
gem command
| list [文字列] | 指定文字列から始まるパッケージを検索 |
| search [文字列] | 指定正規表現に一致するパッケージを検索 |
| install [パッケージ名] | パッケージのインストール |
| uninstall [パッケージ名] | パッケージのアンインストール |
| which [パッケージ名] | パッケージの場所を表示 |
| -v | バージョン表示 |
| update --system | gemのアップデート |
-b:list, search検索時に、ローカル以外も対象とする
| s [パッケージ名] | パッケージの検索 |
| i [パッケージ名] | パッケージのインストール |
| r [パッケージ名] | パッケージのアンインストール |
| info [パッケージ名] | パッケージの情報を表示 |
| ls | インストール済みパッケージ一覧 |
| init | package.jsonの生成 |
| -v | バージョン表示 |
-g:グローバル
パッケージ名はスペース区切りで複数指定可能。バージョン指定はパッケージ名の後に@を付けて行う。例:
$ sudo npm i -g パッケージ名@バージョン
last
last console:コンピュータにログイン・ログアウトした時刻を表示
df
-h:適切な単位をつける
caffeinate
-d:ディスプレイをスリープしない
-i:システムをスリープしない
-m:ディスクをスリープしない
killall app
注意:アプリケーション名の最初は大文字で指定する。(Finder、Dock)
whoami
defaults command
~/Library/Preferences/以下のplistファイルが変更される。
defaults write file 設定項目 設定値:設定値の追加と変更
defaults delete file 設定項目:設定項目の削除
defaults read file:設定ファイルを表示
afplay file
-r:速度調整(標準:1)
-v:音量調整
-q:音質調整(高音質:1)
-rをつけたときは-q 1をつける。
say word
-v [声]:声の変更(?を指定すると一覧が表示される・デフォルト:Kyoko)
-f [ファイル名]:ファイルから入力
-o [ファイル名]:ファイルに出力
-r [速さ]:速さを変更(1分間に読み上げる単語数)
uuidgen
terminal-notifier [オプション]
-title [文字列]:タイトル
-subtitle [文字列]:サブタイトル
-message [文字列]:メッセージ(必須)
-activate [アプリケーション名]:クリック時にアプリを起動(com.apple.Safariなどと指定)
-appIcon [ファイルURL]:左に表示するアイコン
-contentImage [ファイルURL]:右に表示するアイコン
-open [URL]:クリック時にURLを開く
-execute [コマンド]:クリック時にコマンドを実行
Homebrewによって追加
pbcopy
pbpaste
sysctl -a
xargs command
aから始まるファイルの詳細情報を表示する:
find . -name "a*" | xargs ls -la
ffmpeg -i file options new_file
-c:[v,a] codec
| H.264 | libx264
|
| H.265 | libx265
|
| MPEG4 | mpeg4
|
| AAC | libfaac
|
| MP3 | libmp3lame
|
-b:[v,a] [bitrate]k
-s 横x縦
縦横比は保持される(縦の値が優先される)
-aspect 横:縦
縦横比は保持されない(引き伸ばされる)
-ss [秒]
-iより前に書く
-t [秒]
-to [秒]
時間指定はhh:mm:ss[.xxx]でもできる
-r [fps]
-vn / -an
-filter:[v,a] filter
ダブルクォーテーションで囲むとカンマ区切りで複数指定できる
hflip | 水平反転 |
vflip | 垂直反転 |
setpts=n*PTS | 速度変更(n倍の長さ) |
unsharp=luma_amount=n | ぼかし / シャープ (+:シャープ / -:ぼかし) |
rotate=度*PI/180 | 回転 |
volume=n | 音量変更(n倍の音量) |
atempo=n | 速度変更(n倍の速さ) |
volumeは表示される時間がおかしくなる場合があるので、
その場合は再エンコードする
atempoは0.5〜2までしか指定できないが、複数指定できる
-filter_complex filter
overlay=x:y | 動画/画像などを重ねる(x, yは左上からの距離) |
overlayは複数指定すると、2個目と3個目のファイルなどを重ねられる
-preset option
ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, placeboがある
veryfastが1番良い
-pix_fmt yuv420p
-vsync 2
32kbps未満はエラーが出ることがある
-b:a 32k
ファイルを実行する場合:./shell.sh
ruby -e 'puts "Hello World!"'
ファイルを実行する場合:ruby ruby.rb
irb
コードを入力すると、すぐに結果が帰ってくる。Interactive Rubyの略。
php php.php
perl -e 'print "Hello, world!\n"'
ファイルを実行する場合:perl perl.pl
python -c 'print "Hello World!"'
ファイルを実行する場合:python python.py
osascript -e 'display dialog "Hello world!"'
ファイルを実行する場合:osascript applescript.scpt
osacompile [ファイル名]
-o:出力ファイル名(.scpt, .appなどでファイル形式を決定)
-x:実行専用ファイル
echo $s:変数の文字列を出力
echo ${s}:変数の文字列を出力
echo "$s":ダブルクォーテーション...変数展開あり
echo '$s':シングルクォーテーション...変数展開なし
echo $s$s:文字列の連結
printf $s:変数の文字列を出力
printf ${s}:変数の文字列を出力
printf "$s":ダブルクォーテーション...変数展開あり
printf '$s':シングルクォーテーション...変数展開なし
printf $s$s:文字列の連結
# コメント
<< "#__CO__"
aaa
bbb
ccc
#__CO__
s="Hello, world!"
''(シングルクォーテーション)で囲った場合、変数展開がされない。
=(イコール)の両側にはスペースを書いてはいけない。
readonly FILE_NAME="hello.sh"
$1~9:指定個目のコマンドライン引数
$#:コマンドライン引数の数
$$:現在のシェルのプロセスID
$*:すべての変数(IFSで区切り文字を変更可能)
$@:すべての変数(IFSの影響を受けない)
$?:直前のコマンドの終了ステータス
$x$y
${#str}
${str:0:2}
${str:0:2}:1文字目から2文字
${str:1:2}:2文字目から2文字
${str:0:3}:1文字目から3文字
oldifs=IFS
IFS=','
str='aaa,bbb,ccc'
array=($str)
IFS=oldifs
expr [式]
1 + 2:加算
1 - 2:減算
1 \* 2:乗算
1 / 2:除算
1 % 2:剰余(除算の余り)
演算子の両側にはスペースをあける。
括弧で計算順序を指定するときは、括弧の前に\(バックスラッシュ)を付ける。
bc
1+2:加算
1-2:減算
1*2:乗算
1/2:除算
1%2:剰余(除算の余り)
1^2:累乗
sqrt(1):平方根
scale=1:小数点以下の桁数設定
標準入力から式は入力する。bc foo.txtともできる。
改行は;(セミコロン)で1行にすることもできる。
[コマンド] < [ファイル名]:標準入力にファイルを読み込み
[コマンド] > [ファイル名]:標準出力をファイルに上書き
[コマンド] >> [ファイル名]:標準出力をファイルに追記
[コマンド] 2> [ファイル名]:標準エラー出力をファイルに上書き
[コマンド] 2>> [ファイル名]:標準エラー出力をファイルに追記
[コマンド] &> [ファイル名]:標準出力と標準エラー出力をファイルに上書き
[コマンド] &>> [ファイル名]:標準出力と標準エラー出力をファイルに追記
[コマンド] 1> [ファイル1] 2> [ファイル2]:標準出力と標準エラー出力を別々のファイルに上書き
[コマンド] 1>> [ファイル1] 2>> [ファイル2]:標準出力と標準エラー出力を別々のファイルに追記
出力先に/dev/nullを指定すると、出力が破棄される。
[コマンド1] | [コマンド2]:コマンド1の標準出力をコマンド2の標準入力に入れる
[コマンド1] ; [コマンド2]:コマンド1が終わり次第、コマンド2を実行
[コマンド1] && [コマンド2]:コマンド1の終了ステータスが0(成功)なら、コマンド2を実行
[コマンド1] || [コマンド2]:コマンド1の終了ステータスが0以外(失敗)なら、コマンド2を実行
echo <<'_EOT_'
foo
bar
_EOT_
<<_EOT_:変数・コマンド置換利用可能($を表示するには\$のようにエスケープする)
<<'_EOT_':変数・コマンド置換利用不可
echo `date`
echo $(date)
array=(a b c)
${array[0]}
最初は0から始まる。(zshの場合1)
"${array[@]}"
array=(d "${array[@]}")
array+=( d )
array=("${array[@]:1}")
echo ${array[((${#array[@]}-1))]}
${#array[@]}
array[2]=4
if [ 条件 ]; then
# 処理
fi
if [ 条件 ]; then
# 真の場合の処理
else
# 偽の場合の処理
fi
if [ 条件 ]; then
# 真の場合の処理
elif [ 条件 ]; then
# 真の場合の処理
fi
case 値 in
パターン1 ) 処理1 ;;
パターン2 ) 処理2 ;;
...
パターンn ) 処理n ;;
esac
条件が真の間繰り返す
while [ 条件 ]; do
# 処理
done
条件が偽の間繰り返す
until [ 条件 ]; do
# 処理
done
変数に値を入れながら繰り返す
for 変数 in 値リスト ; do
# 処理
done
ループを抜ける
break 3で多重ループも抜けられる。
ループを1回スキップ
continue 2のようにすると多重ループもスキップできる。
test [式]
testコマンドは真(0)か偽(1)のステータスを返す。
[ 条件 ]と略すことがある(その時[ ]の内側にはスペースを入れる)。
以下の条件に一致したら真(0)が返される。
num1 -eq num2:num1とnum2が等しい(num1=num2)
num1 -ne num2:num1とnum2が等しくない(num1≠num2)
num1 -lt num2:num1がnum2より小さい(num1<num2)
num1 -le num2:num1がnum2以下(num1≦num2)
num1 -gt num2:num1がnum2より大きい(num1>num2)
num1 -ge num2:num1がnum2以上(num1≧num2)
文字列1 = 文字列2:文字列1と文字列2が等しい
文字列1 != 文字列2:文字列1と文字列2が等しくない
条件式1 -a 条件式2:AND条件(&&と表記することもできる)
条件式1 -o 条件式2:OR条件(||と表記することもできる)
関数の定義
関数名(引数1, 引数2...) {
# 処理
return 終了ステータス(成功:0・失敗:1)
}
関数の呼び出し(()を付ける必要はない):
関数名 引数
戻り値が存在しないため、rtn=`func`とコマンド置換を使い、出力を取得する。