$PATH自体と$PATHエコー

$PATH自体と$PATHエコー

次のように入力すると、$PATH出力が開始され、-bash:最後にthen値が印刷されますが、出力はその出力を生成しません。バッシュが関係していますか?$PATH: No such directoryecho $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

bashbashがメッセージをエクスポートするので、名前で始まります。ややトリッキーな部分は-bashbashbashが。シェル 具体的には、ログインシェル  通常、ログインシェルの名前は常に次に終わります。-

これに関する詳細な背景については、以下を参照してください。

答え3

$PATH引数もなく、実際のコマンド名もないので、変数を評価してコマンドとして実行してみてください。これにより、次のメッセージが表示されますno such file or directory

echo $PATH$PATH変数の内容を表示するコマンドを明示的に提供します。

答え4

これは次のとおりです。

export myvar="echo test"
$myvar

bash は myvar を拡張し、変数の結果を実行します。

この場合の出力は次のようになります。

テスト

関連情報