Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- # テキスト形式のファイル検出
- ## 引数の数が多い場合は中止して実行方法を提示する
- if test $# -gt 1
- then
- echo '利用法:' $0 '[パス名]'
- exit 1
- fi
- ## 正しい数の引数がついていた場合
- if test $# -eq 1
- then
- dir=$1
- if test -f $dir ### 引数がファイル名だったら中止
- then
- echo 'パス名が誤りです!'
- exit 1
- fi
- else
- dir=. ### 引数がなければカレントディレクトリを検索対象とする
- fi
- ## コマンドの検証結果の表示と、検出結果表示の準備
- sw=0
- set `ls $dir` ### lsの実行結果をシェル変数に代入する
- echo 'パス名:' $dir
- echo -n 'テキスト形式のファイル:'
- ## ファイル名を順番にfileコマンドに渡してテキストファイルかどうか調べる
- for arg in $@ ### 不明点1: ここの@,下のfor文の中で更新されてしまわないのはなぜ?
- do ### → 別のところにキャッシュされている模様(ループ後にもう一度参照すると、更新されている)
- set `file -b $dir/$arg`
- if echo $* | grep -q text - ### 不明点2: 最後の - はどういう意味?
- then ### → echoの結果が-の位置に渡されていることを明示している
- echo -n ' ' $arg
- sw=1
- fi
- done
- ## テキストファイルが一つもなかった場合
- if test $sw -eq 0
- then
- echo '存在しません。'
- else
- echo
- fi
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement