コマンドを実行できるようにしたいのですが、適切な権限がないために失敗します。次に、「please」と記述して、実行したコマンドをsudoすることができます。
ターミナルでやりたいことは次のとおりです。
$ run command
"you don't have access to do that"
$ please
"ran successfully"
それが!!
前のコマンドを取得するのを見たので、それを使用できると思いましたが、機能させることができません。
私のplease.shシェルスクリプトは次のようになりますが、これらのいずれも機能させることができません。「コマンドが見つかりません!!」とだけ表示されます。sudoの使用法を出力します。
#!/bin/zsh
#sudo !!
#sudo `!!`
sudo $(!!)
!!
子シェルの親シェルにアクセスできないため、シェルスクリプトで使用することはできません。を使用sudo !!
することをお勧めしますが、本当にBASHスクリプトを作成する場合は、次のように.bash_historyを使用する必要があります。
#!/bin/bash
sudo `cat $HOME/.bash_history | tail -n1`
それは間違いなく完璧な解決策ではありませんが、それでうまくいくはずです。ZSHを使用している場合、ZSHは(私の知る限り).bash_historyに出力されないため、これは機能しません。 更新:ZSHで動作するはずのバージョンは次のとおりです。
#!/usr/bin/zsh
. $HOME/.zshrc
sudo `cat \`readlink -f $HISTFILE\` | tail -n1`
お役に立てれば!
スクリプトがわからない場合は、BASHに入力された最後のコマンドをsudoで実行するだけです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加