Я только что попробовал nano
, и что меня больше всего удивило, так это то, что он даже не предупреждает вас, что файл доступен только для чтения, когда вы начинаете пытаться редактировать файл. ( ОБНОВЛЕНИЕ: очевидно, nano 2.2 предупреждает; 2.0 нет. )
Вот (основной) скрипт, который это делает.
Он проверяет, можете ли вы отредактировать файл, и если вы не можете, вместо этого запускает «nano» от имени пользователя root.
/ usr / local / bin / edit (или ~ / bin / edit )
sudo= # empty is false, non-empty is true
editor=nano # XXX check $EDITOR and $VISUAL
if test -e "$1" && test ! -w "$1"; then
if test -t 0 && test -t 2; then
printf "%s is not writable. Edit with sudo? [y/n] " "$1" 1>&2
read -n 1
case $REPLY in
y|Y)
sudo=true
;;
n|N)
sudo=
;;
*)
printf "\nExpected y or n. Exiting.\n" 1>&2
exit 1
;;
esac
else
printf "%s is not writable. Fix the permissions or run \"view\" instead." "$1" 1>&2
exit 1
fi
fi
${sudo:+sudo} "$editor" "$1"
И команду, которую я вызвал, view
чтобы вы могли избежать запроса, если знаете, что не собираетесь вносить какие-либо изменения.
/ usr / local / bin / view (или ~ / bin / view )
editor=nano
readonlyflag=-v
"$editor" $readonlyflag "$1"
Уже есть программа под названием view
Vi / Vim, поэтому не стесняйтесь предлагать более подходящее имя.
(Но я думаю, что полная реализация этой программы сделает view
излишним Vi .)
Полные версии
vim
. Я рассматриваю слияние ... хотя я также рассматриваю тот факт, что конкретные инструкции vim не будут работатьnano
.