逆引きシェルスクリプト/if文のサンプル・ファイル・ディレクトリ編
の編集
Top
/
逆引きシェルスクリプト
/
if文のサンプル・ファイル・ディレクトリ編
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * if文のサンプルシェルスクリプト・ファイル・ディレクトリ編 [#n6517588] bashを利用しif .. then .. fi を利用し、ファイルおよびディレクトリの有無を調べるサンプルシェルスクリプトを以下に記します。 #contents #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) * ディレクトリかどうか調べる [#mc843b66] ディレクトリかどうかは、''-d''オプションを利用します。 #ref(chk_dir.sh) 以下のサンプルシェルスクリプトは、fooディレクトリを作成し、''-d''オプションを使用してディレクトリの有無を確認しています。~ 途中、''-f''オプションを利用してファイルかどうかを確認しています。~ 次に、fooディレクトリを削除し''!''を利用しfooディレクトリが存在しない場合、if ... fiが実行されるようになっています。 #/bin/bash mkdir foo if [ -d foo ]; then echo "foo directory found." fi if [ -f foo ]; then echo "foo file found." fi rmdir foo if [ ! -d foo ]; then echo "foo directory not found." fi -実行結果 $ chmod +x chk_dir.sh $ ./chk_dir.sh foo directory found. foo directory not found. 実行結果の出力からわかるように、ディレクトリの有無は''-d''オプションで確認できます。~ また、ファイルでは無いので''-f''オプションのif ... fiブロックの処理は実行されていないのがわかります。 * ファイルでもディレクトリでも存在しているかどうかを調べる [#q473f710] ファイルでもディレクトリでも存在しているかどうかのチェックは、''-e''オプションを利用します。~ 以下のサンプルシェルスクリプトは、fooディレクトリとbarファイルを作成し、''-e''オプションで有無確認を行い、その内部ブロックでディレクトリなのかファイルなのかを確認しています。 #ref(chk_dir_file.sh) #/bin/bash mkdir foo touch bar if [ -e foo ]; then echo "foo found." if [ -d foo ]; then echo "foo is directory." fi if [ -f foo ]; then echo "foo is file." fi fi if [ -e bar ]; then echo "bar found." if [ -d bar ]; then echo "bar is directory." fi if [ -f bar ]; then echo "bar is file." fi fi rmdir foo rm bar - 実行結果 $ chmod +x chk_dir_file.sh $ ./chk_dir_file.sh foo found. foo is directory. bar found. bar is file. * ファイルが存在しているかどうかを確認する [#z3143d75] 上記の例で既に記述していますが、''-f''オプションによりファイル(ディレクトリを除く)の有無を確認することができます。~ 以下のサンプルシェルスクリプトファイルは、fooファイルを作成し''-f''オプションでファイルの有無を確認しています。~ 途中、''-d''オプションを利用してディレクトリかどうかを確認しています。~ 次に、fooファイルを削除し''!''を利用しfooファイルが存在しない場合、if ... fiが実行されるようになっています。 #ref(chk_file.sh) #/bin/bash touch foo if [ -f foo ]; then echo "foo file found." fi if [ -d foo ]; then echo "foo directory found." fi rm foo if [ ! -f foo ]; then echo "foo file not found." fi * 関連記事 [#f8f90509] - [[if文のサンプルシェルスクリプト・数値比較編>逆引きシェルスクリプト/if文のサンプルシェルスクリプト・数値比較編]] -[[if文の条件式でand, or, notを使う方法>逆引きシェルスクリプト/if文の条件式でand, or, notを使う方法]] -[[ファイルのパーミッションを確認する方法>逆引きシェルスクリプト/ファイルのパーミッションを確認する方法]] -[[シンボリックリンクかどうか判別する方法>逆引きシェルスクリプト/シンボリックリンクかどうか判別する方法]] -[[ファイルサイズが0より大きいかを確認する>逆引きシェルスクリプト/ファイルサイズが0より大きいかを確認する]] -[[case…esacのサンプルシェルスクリプト>逆引きシェルスクリプト/case…esacのサンプルシェルスクリプト]] #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
タイムスタンプを変更しない
#navi(../) * if文のサンプルシェルスクリプト・ファイル・ディレクトリ編 [#n6517588] bashを利用しif .. then .. fi を利用し、ファイルおよびディレクトリの有無を調べるサンプルシェルスクリプトを以下に記します。 #contents #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) * ディレクトリかどうか調べる [#mc843b66] ディレクトリかどうかは、''-d''オプションを利用します。 #ref(chk_dir.sh) 以下のサンプルシェルスクリプトは、fooディレクトリを作成し、''-d''オプションを使用してディレクトリの有無を確認しています。~ 途中、''-f''オプションを利用してファイルかどうかを確認しています。~ 次に、fooディレクトリを削除し''!''を利用しfooディレクトリが存在しない場合、if ... fiが実行されるようになっています。 #/bin/bash mkdir foo if [ -d foo ]; then echo "foo directory found." fi if [ -f foo ]; then echo "foo file found." fi rmdir foo if [ ! -d foo ]; then echo "foo directory not found." fi -実行結果 $ chmod +x chk_dir.sh $ ./chk_dir.sh foo directory found. foo directory not found. 実行結果の出力からわかるように、ディレクトリの有無は''-d''オプションで確認できます。~ また、ファイルでは無いので''-f''オプションのif ... fiブロックの処理は実行されていないのがわかります。 * ファイルでもディレクトリでも存在しているかどうかを調べる [#q473f710] ファイルでもディレクトリでも存在しているかどうかのチェックは、''-e''オプションを利用します。~ 以下のサンプルシェルスクリプトは、fooディレクトリとbarファイルを作成し、''-e''オプションで有無確認を行い、その内部ブロックでディレクトリなのかファイルなのかを確認しています。 #ref(chk_dir_file.sh) #/bin/bash mkdir foo touch bar if [ -e foo ]; then echo "foo found." if [ -d foo ]; then echo "foo is directory." fi if [ -f foo ]; then echo "foo is file." fi fi if [ -e bar ]; then echo "bar found." if [ -d bar ]; then echo "bar is directory." fi if [ -f bar ]; then echo "bar is file." fi fi rmdir foo rm bar - 実行結果 $ chmod +x chk_dir_file.sh $ ./chk_dir_file.sh foo found. foo is directory. bar found. bar is file. * ファイルが存在しているかどうかを確認する [#z3143d75] 上記の例で既に記述していますが、''-f''オプションによりファイル(ディレクトリを除く)の有無を確認することができます。~ 以下のサンプルシェルスクリプトファイルは、fooファイルを作成し''-f''オプションでファイルの有無を確認しています。~ 途中、''-d''オプションを利用してディレクトリかどうかを確認しています。~ 次に、fooファイルを削除し''!''を利用しfooファイルが存在しない場合、if ... fiが実行されるようになっています。 #ref(chk_file.sh) #/bin/bash touch foo if [ -f foo ]; then echo "foo file found." fi if [ -d foo ]; then echo "foo directory found." fi rm foo if [ ! -f foo ]; then echo "foo file not found." fi * 関連記事 [#f8f90509] - [[if文のサンプルシェルスクリプト・数値比較編>逆引きシェルスクリプト/if文のサンプルシェルスクリプト・数値比較編]] -[[if文の条件式でand, or, notを使う方法>逆引きシェルスクリプト/if文の条件式でand, or, notを使う方法]] -[[ファイルのパーミッションを確認する方法>逆引きシェルスクリプト/ファイルのパーミッションを確認する方法]] -[[シンボリックリンクかどうか判別する方法>逆引きシェルスクリプト/シンボリックリンクかどうか判別する方法]] -[[ファイルサイズが0より大きいかを確認する>逆引きシェルスクリプト/ファイルサイズが0より大きいかを確認する]] -[[case…esacのサンプルシェルスクリプト>逆引きシェルスクリプト/case…esacのサンプルシェルスクリプト]] #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)
テキスト整形のルールを表示する
添付ファイル:
chk_dir.sh
745件
[
詳細
]
chk_dir_file.sh
629件
[
詳細
]
chk_file.sh
650件
[
詳細
]