「よく使うシェルコマンド」の版間の差分
提供: Eospedia
(→配列) |
|||
| 行20: | 行20: | ||
fi | fi | ||
</pre> | </pre> | ||
| + | <br> | ||
elif, else付き | elif, else付き | ||
| 行56: | 行57: | ||
</tr> | </tr> | ||
</table> | </table> | ||
| + | <br> | ||
| + | |||
| + | == ループ文 == | ||
| + | === for文 === | ||
| + | ==== for (i=0; i < Max; i++) タイプ ==== | ||
| + | 括弧()を二重にして使用することに注意しましょう。<br> | ||
| + | <br> | ||
| + | 例<br> | ||
| + | <pre> | ||
| + | for (( i=0; i<5; i++ )); \ | ||
| + | do \ | ||
| + | echo "$i"; \ | ||
| + | done \ | ||
| + | </pre> | ||
| + | <br> | ||
| + | |||
| + | 実行結果<br> | ||
| + | <pre> | ||
| + | 0 | ||
| + | 1 | ||
| + | 2 | ||
| + | 3 | ||
| + | 4 | ||
| + | </pre> | ||
| + | <br> | ||
| + | |||
| + | ==== for in ==== | ||
| + | [[#配列]]などを利用したリストでループを作成できます。<br> | ||
| + | <pre> | ||
| + | for (変数名) in (配列) ; do (コマンド); done | ||
| + | </pre> | ||
| + | <br> | ||
| + | |||
| + | 例<br> | ||
| + | <pre> | ||
| + | ARRAY=(ABC EFG HIJ) | ||
| + | |||
| + | for data in ${ARRAY[@]} ; \ | ||
| + | do \ | ||
| + | echo "$data"; \ | ||
| + | done | ||
| + | </pre> | ||
| + | <br> | ||
| + | |||
| + | 実行結果<br> | ||
| + | <pre> | ||
| + | ABC | ||
| + | EFG | ||
| + | HIJ | ||
| + | </pre> | ||
<br> | <br> | ||
2014年11月7日 (金) 02:45時点における版
ここではコマンド、Makefile、PIONEなどの作成や実行においてよく使うシェルコマンドを簡易的にリストアップしています。
目次
制御文
if文
基本形
if [ (条件) ]; then (処理); fi
ifの後、[の後、]の前には空白が必要
条件、処理が長いときは\を使うと行をまたぐことができ、読みやすいようになります。
if [ (条件1) ]; then \ (処理A); \ if [ (条件2) ]; then \ (処理B); \ fi; \ (処理C); \ fi
elif, else付き
if [ (条件1) ]; then \ (処理A); \ elif [ (条件2) ]; then \ (処理B); \ else \ (処理C); \ fi
条件
| コマンド | 用途 | 例 |
|---|---|---|
| -e | ファイル、ディレクトリが空か調べる | if [ -e Input.txt ] ; then echo "Input.txt is not empty!" fi |
| ! | 条件の反転 | if [ ! -e Input.txt ] ; then echo "Input.txt is empty!" fi |
| -d | ディレクトリの有無を調べる | if [ -d Input.txt ] ; then echo "Input is not directory!" fi |
ループ文
for文
for (i=0; i < Max; i++) タイプ
括弧()を二重にして使用することに注意しましょう。
例
for (( i=0; i<5; i++ )); \ do \ echo "$i"; \ done \
実行結果
0 1 2 3 4
for in
#配列などを利用したリストでループを作成できます。
for (変数名) in (配列) ; do (コマンド); done
例
ARRAY=(ABC EFG HIJ)
for data in ${ARRAY[@]} ; \
do \
echo "$data"; \
done
実行結果
ABC EFG HIJ
配列
入力
(配列名)=((値1) (値2) ...)
出力
1つだけ出力するとき
${(配列名)[(番号)]}
全ての値を出力するとき
${(配列名)[@]}
要素数を出力するとき
${#(配列名)[@]}
例
コマンド
ARRAY=(123 456 789)
echo "${ARRAY[2]}"
echo "${ARRAY[@]}"
echo "${#ARRAY[@]}"
実行結果
789 123 456 789 3