#!/bin/bash
if [ -z "$1" ]; then
gedit
exit 0
fi
test ! -e "$1" && gedit "$1" || $(test -w "$1" && gedit "$1" || gksu gedit "$1")
簡単な説明(私の口頭での吹雪の読み方を既に理解している人向け):
エディターを起動する前に、ユーザーにファイルを変更する権限があるかどうかを確認します。 権限がない場合は、スーパーユーザーに代わってエディターを起動します。
(入力ファイルが指定されていない場合、単純なユーザーとしてエディターを開きます)
長い説明(読む必要のない人向け):
通常、どのようにテキストファイルを編集しますか? ターミナルからgedit、vi、nanoなどを実行する場合、スクリプトはおそらく適切ではありません。
私はgnome-commander(または別のファイルマネージャー)の古い習慣です。F4を押します。
そして今-私はすでに何度か遭遇した状況。 何らかのファイルを編集する必要がありますが、結局のところ、アクセス権が制限されています。 たとえば、新しいリポジトリを追加したい。 sources.listファイルを見つけ、F4を押して編集し、保存しようとします...権限の欠如に関するメッセージが表示されます。 ええ、もちろん、スーパーユーザーの代わりにエディターを実行する必要がありましたが、私は知っています、私は知っています...しかし、今何をすべきか? ここに「現在のユーザーを変更...」のようなボタンがありますが、ありません。 したがって、すべてのテキストをコピーし、エディターを閉じ、ターミナルを開き、目的のディレクトリを再度探し、手でgksu gedit sources.listを実行し、パスワードを入力し、保存したテキストを挿入し、最後に変更を保存する必要があります。 人間工学的すぎますか?
スーパーユーザーの代わりに常にgnome-commanderまたはgeditを実行する場合、これはもちろん問題を解決しますが、このアプローチは明らかに悪いです。
だから私はこの解決策を思いついた:
- 編集というテキストファイルを作成します
- 上記のコードをそれに貼り付けます
- 保存する
- このファイルに実行許可を与えます
- / usr / local / binに入れてください
- 編集用のgnome-commander(またはお気に入りのファイルマネージャー)の設定で、edit%sコマンドを割り当てます。
PS: geditはお好みのエディターに変更できます。 コンソールの場合、gksuはsudoに変更できます。
UPD:名前にスペースが含まれるファイルが誤って処理されました。 ありがとうbappoy 、修正。