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`
とコマンド置換を使い、出力を取得する。
© 2019 shge.github.io 利用規約・プライバシー