0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linucレベル1勉強メモ #34

Posted at

# 第三章 GNUとUnixのコマンド

練習問題3.9
自分用にコマンドをいくつか作成し、$HOME/binディレクトリ以下に格納しました。
絶対パスで指定して実行するのは手間がかかるので、コマンド名のみの入力で実行されるようにしたいと思います。そこで、つぎのコマンドを実行しました。

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
$ PATH=$HOME/bin

この結果として予想される事態を2つ選択してください。

A. ~/binディレクトリ以下のコマンドはコマンド名のみで実行可能となる

B. PATH変数の設定時に「$」をつけ忘れているのでエラーメッセージが表示される

C. PATH変数の設定時に「$」をつけ忘れているのでPATH変数の内容は変更されないが、エラーメッセージは表示されない

D. 「PATH="$HOME/bin"」のように引用符で囲って指定しなければエラーになる

E. 多くのコマンドが「command not found」となって実行できなくなる

(解答)A, E

(解説)
PATH関数にパスを追加するには「PATH=$PATH:追加ディレクトリ」の書式で指定します。設問にあるように、単に「PATH=追加ディレクトリ」とすると、新しく指定したディレクトリのみがPATH変数に設定されます。その結果、指定したディレクトリのコマンドとシェルの内部コマンド以外のコマンドは「command not found」となり、実行できなくなってしまいます。したがって、選択肢Eは適切です。設問では、パスが通っているのは$HOME/binディレクトリだけになりますので、少なくとも$HOME/bin以下のコマンドはコマンド名のみで実行可能となります。従って選択肢Aは適切です。変数を設定するときは、変数名に「$」記号をつけません。従って選択肢B及び選択肢Cは不正解です。また、変数に指定する文字列は引用符で囲って指定しなくてもエラーになりません。従って、選択肢Dは不正解です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?