Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. #!/bin/sh
  2. # テキスト形式のファイル検出
  3.  
  4. ## 引数の数が多い場合は中止して実行方法を提示する
  5. if test $# -gt 1
  6. then
  7. echo '利用法:' $0 '[パス名]'
  8. exit 1
  9. fi
  10.  
  11. ## 正しい数の引数がついていた場合
  12. if test $# -eq 1
  13. then
  14. dir=$1
  15. if test -f $dir ### 引数がファイル名だったら中止
  16. then
  17. echo 'パス名が誤りです!'
  18. exit 1
  19. fi
  20. else
  21. dir=. ### 引数がなければカレントディレクトリを検索対象とする
  22. fi
  23.  
  24. ## コマンドの検証結果の表示と、検出結果表示の準備
  25. sw=0
  26. set `ls $dir` ### lsの実行結果をシェル変数に代入する
  27. echo 'パス名:' $dir
  28. echo -n 'テキスト形式のファイル:'
  29.  
  30. ## ファイル名を順番にfileコマンドに渡してテキストファイルかどうか調べる
  31. for arg in $@ ### 不明点1: ここの@,下のfor文の中で更新されてしまわないのはなぜ?
  32. do ### → 別のところにキャッシュされている模様(ループ後にもう一度参照すると、更新されている)
  33. set `file -b $dir/$arg`
  34. if echo $* | grep -q text - ### 不明点2: 最後の - はどういう意味?
  35. then ### → echoの結果が-の位置に渡されていることを明示している
  36. echo -n ' ' $arg
  37. sw=1
  38. fi
  39. done
  40.  
  41. ## テキストファイルが一つもなかった場合
  42. if test $sw -eq 0
  43. then
  44. echo '存在しません。'
  45. else
  46. echo
  47. fi
  48. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement