次のように入力すると、$PATH
出力が開始され、-bash:
最後にthen値が印刷されますが、出力はその出力を生成しません。バッシュが関係していますか?$PATH
: No such directory
echo $PATH
readline
[user1@Server1 ~]$ $PATH
-bash: /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/user1/.local/bin:/home/user1/bin: No such file or directory
今実行すると、echo $PATH
出力は次のようになります。
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/user1/.local/bin:/home/user1/bin
答え1
単純なコマンドラインの最初の単語はcommand - actionです。 (より複雑なバリエーションがありますが、現時点ではこれだけで十分な事実と見なされます。)
最初の例では、「command」は変数の値であり、$PATH
実際にはコマンドではないため、bash
実行するコマンドが見つからないと文句を言います。 (シェルは、$PATH
入力したコマンドの変数で指定されたコロンで区切られたディレクトリのリストを検索します。)
2番目の例では、「command」は引数がecho
値の動詞です。$PATH
このecho
コマンドは引数を次に出力します。標準出力$PATH
、画面に値を表示できます。
答え2
命令を入力すると
$ cat food
エラーメッセージが表示されます
cat: food: No such file or directory
命令を入力すると
$ cp abc def
エラーメッセージが表示されます
cp: cannot stat ‘abc’: No such file or directory
それは非常に非常にUnixとLinuxのエラーメッセージは、エラーを発行した(つまり作成した)プログラムの名前で始まることがよくあります。だから入力するとき
$ abc:def
bashシェルに入ると、自然にエラーメッセージが表示されます。
-bash: abc:def: command not found
bash
bashがメッセージをエクスポートするので、名前で始まります。ややトリッキーな部分は-bash
bashbash
が。シェル、
具体的には、ログインシェル。 通常、ログインシェルの名前は常に次に終わります。-
。
これに関する詳細な背景については、以下を参照してください。
答え3
$PATH
引数もなく、実際のコマンド名もないので、変数を評価してコマンドとして実行してみてください。これにより、次のメッセージが表示されますno such file or directory
。
echo $PATH
$PATH
変数の内容を表示するコマンドを明示的に提供します。
答え4
これは次のとおりです。
export myvar="echo test"
$myvar
bash は myvar を拡張し、変数の結果を実行します。
この場合の出力は次のようになります。
テスト