- PR -

usageとは?

1
投稿者投稿内容
take
大ベテラン
会議室デビュー日: 2004/08/13
投稿数: 177
お住まい・勤務地: 沖縄県北部
投稿日時: 2005-12-29 11:28
いつもお世話になります。Kシェルを使用しています。

他人の書いたシェルスクリプトを保守することになりました。
参考書に載ってない&WEBでも見つけきれないので質問させて
いただきます。

ファイルのヘッダー
#!/bin/ksh
USAGE="usage:abc.sh"  ←これの意味が知りたいです

どうやら現在編集してるファイル名がそのまま入ってるようです。
なくても処理自体に影響はなさそうなのですが、書くべきなのか
そうでないのか迷っています。「このファイルの名前はこれです」
的な使い方っぽいですねー。

書いたほうがいいのか、「USAGE=」にどのような意味があるのかを
ご存知の方がいらっしゃいましたらよろしくご教示願います。
未記入
ぬし
会議室デビュー日: 2004/09/17
投稿数: 667
投稿日時: 2005-12-29 12:02
「使い方」では?

提示されている例だと「引数なしで実行するスクリプト」ということをあらわしているのではないかと思う。

Usage: abc.sh <inputfile> なら「このスクリプトには入力ファイルをひとつ与えて使え」とか、そういう意味で書いているのではないかな。
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2005-12-29 12:04
Usageとは「使用方法」です。

そのshの場合、sh名そのままってことは
オプションも何も必要ないのでしょう。

コード:
# which
Usage: /usr/bin/which [options] [--] programname [...]
Options: --version, -[vV] Print version and exit successfully.
         --help,          Print this help and exit successfully.
         --skip-dot       Skip directories in PATH that start with a dot.
         --skip-tilde     Skip directories in PATH that start with a tilde.
         --show-dot       Don't expand a dot to current directory in output.
         --show-tilde     Output a tilde for HOME directory for non-root.
         --tty-only       Stop processing options on the right if not on tty.
         --all, -a        Print all matches in PATH, not just the first
         --read-alias, -i Read list of aliases from stdin.
         --skip-alias     Ignore option --read-alias; don't read stdin.
         --read-functions Read shell functions from stdin.
         --skip-functions Ignore option --read-functions; don't read stdin.


私のlinux環境でwhich引数なしで実行するとこんな感じに。

Usageありますよね。
take
大ベテラン
会議室デビュー日: 2004/08/13
投稿数: 177
お住まい・勤務地: 沖縄県北部
投稿日時: 2005-12-29 13:03
お二方のご返答に感謝します。

なるほどー。お二人からいただいた情報を元にすると、
自分以外の誰かが修正するかも知れないファイルには
書かないとわかりにくくなってしまうわけですね?

Usage自体には何かを処理するとかそういう機能は特に
なくて、見てわかるように書いておくみたいな感じで
理解しても誤解じゃないですよね?
Mattun
ぬし
会議室デビュー日: 2004/08/10
投稿数: 1391
投稿日時: 2006-01-06 13:25
引用:

ファイルのヘッダー
#!/bin/ksh
USAGE="usage:abc.sh"  ←これの意味が知りたいです


usageという単語が使われるケースの説明に関しては
すでに触れられてる通りなんですが、

上記の記載に関しては、
「USAGEという変数に"usage:abc.sh"という文字列を格納する」
という意味になります。

そのスクリプトのどこかに、
「何かしらかの条件(*)にマッチした場合に変数USAGEの内容をechoする」
みたいな処理が含まれてるかと思います。
(*)は、そのスクリプトの間違った使い方をした場合であり、
すでにあげられてるwhichの例だと、引数必須なコマンドだから、引数が
与えられなかったときにUsageが表示されてる、みたいな感じです。
_________________
Mattun
Microsoft MVP for Directory Services
(Oct 2006-Sep 2007)
take
大ベテラン
会議室デビュー日: 2004/08/13
投稿数: 177
お住まい・勤務地: 沖縄県北部
投稿日時: 2006-01-06 19:14
Mattunさん、ご返答ありがとうございます。
確かにechoで返してる部分がありました。
ユーザーに注意を促すエラー処理だったのですね。

ちゃんと確認すれば変数に格納してることは
わかりそうなのに、おっちょこちょいですみません。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)