よく使うシェルコマンド

提供: Eospedia
2014年11月11日 (火) 09:10時点におけるKinoshita (トーク | 投稿記録)による版

移動: 案内検索

 ここではコマンドMakefilePIONEなどの作成や実行においてよく使うシェルコマンドを簡易的にリストアップしています。

制御文

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


while文

while [ (条件) ] ; \
do \
	(コマンド); \
done 


配列

入力

(配列名)=((値1) (値2) ...)


出力

1つだけ出力するとき

${(配列名)[(番号)]}


全ての値を出力するとき

${(配列名)[@]}


要素数を出力するとき

${#(配列名)[@]}


コマンド

ARRAY=(123 456 789)
echo "${ARRAY[2]}"
echo "${ARRAY[@]}"
echo "${#ARRAY[@]}"


実行結果

789
123 456 789
3


その他

permission deniedのとき

基本的にはsudoコマンドを前に付ければ管理者権限で実行できます。

sudo echo "XXXX" > data.txt


ライブラリの書き換えなどでうまくいかないときはchownで所有者を変更します。

sudo chown $USER data.txt

ディレクトリ以下を再帰的に変更することもできます。(複数のユーザーで使用しているときは注意が必要です)

sudo chown -R $USER datadirectory/