たとえば、インストールされていないパッケージを実行しようとすると、次のようになります。
me ~: gparted
The program 'gparted' is currently not installed. You can install it by typing:
sudo apt-get install gparted
sudo apt-get install gparted
この行をコマンドでどのように実行できますか?明らかに入力しません。
ベストアンサー1
これは.bashrc
export COMMAND_NOT_FOUND_INSTALL_PROMPT=1
あなたのため:
$ foo
The program 'foo' is currently not installed. You can install it by typing:
sudo apt-get install blah-blah
Do you want to install it? (N/y)
次のPythonエラーが発生した場合:
...
File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 217, in install_prompt
answer = answer.decode(sys.stdin.encoding)
AttributeError: 'str' object has no attribute 'decode'
あなたはできます:
適用する今回のパッチUbuntuの場合ここ。
または:
215,216,217行の先頭にスペースを4つ追加して修正します。CommandNotFound.py
(ノート:いいえ商標):
... 213 その他: 第214話 2154 spaces 話 2164 spaces 話 2174 spaces 話 第218話 ...
別の方法は拡張グレック・ヒュギルコメントは次のとおりです。
$(!! 2>&1 | tail -n1)
スクリプトでラップしようとしましたが、うまくいきませんでした。箱の外エラーメッセージが表示されないためです。
これをスクリプトに入れたい場合、ややハッキング的なアプローチは次のとおりです。
x=$(/usr/lib/command-not-found $(tail -n1 "$HOME/.bash_history") 2>&1 | tail -n1)
echo "$x"
一部のオプションについては、以下を確認してください。
/usr/lib/command-not-found -help
および/またはスクリプト自体を確認してください。