GNU/Linux >> Linux の 問題 >  >> Fedora

Bash 4.3の「複数のドット」コマンドがFedoraでサイレントに失敗しますか?

私はbash4.3でこれに気づきました。正確なバージョン番号は4.3.42(1)-release(x86-redhat-linux-gnu)です。

$ ..
$ ...
$ ....
$ .....

「コマンドが見つかりません」というプロンプトが表示されないのはなぜですか?

$ ...
$ echo $? 
$ 127

$PATHを確認しました およびalias なし;男はどちらも助けていません。
bashはFedoraLinuxで実行されますが、OSとは関係がないと思います。

編集

これは、どのドット開始コマンドでも同じであることに気づきました

.za
.zaza
..za
..zaza

承認された回答:

これは、Fedoraでのコマンドが見つからない処理が原因でした。

不明なコマンドの実行(...を含む) エイリアスが一致しない場合など)command_not_found_handleが発生します 欠落しているコマンドをパラメーターとして実行します(/etc/profile.d/PackageKit.shを参照) その定義について)。与えられたシナリオでは、ハンドラーは/usr/libexec/pk-command-not-foundを実行します 、パラメータとして欠落しているコマンドを使用します。以前は、pk-command-not-found .

if (argv[1][0] == '.')
    goto out;

コード127で終了しました。

この動作はRedHat#1151185を修正するために導入され、Bashでも参照され、ドットで始まる存在しないコマンドに対してエラーメッセージを出力せず、修正を要求するバグがあります(Red Hat#1292531)。 PackageKit 1.1.8(このコミットを参照)以降、FC 27で大幅に修正され、先頭にドットが付いたコマンドが処理されるようになりました。. および.. 無視されます。


Fedora
  1. 15 の便利な Bash シェル組み込みコマンド (例付き)

  2. UNIX / Linux :最後のコマンドを繰り返す bash history コマンドの例

  3. bash エクスポート コマンド

  1. Bashの制御演算子と組み合わせたコマンド

  2. Bash bangコマンド:Linuxコマンドラインの必知のトリック

  3. chroot が失敗します - コマンド `/bin/bash' を実行できません:そのようなファイルまたはディレクトリはありません

  1. AからZのLinuxコマンド

  2. コマンド出力を bash の変数にリダイレクトすると失敗する

  3. jenkins パイプラインで bash コマンドを実行する