Я хочу, чтобы сценарий оболочки запускал VI с помощью sudo, если я попытаюсь отредактировать файл, у которого нет прав на запись, и для этого я создал псевдоним
alias vi=my_script.sh
#!/bin/bash
file=$1
if [ -r $file ]
then
/usr/bin/vi $file
else
sudo /usr/bin/vi $file
fi
Однако, нет Что делать, когда пытаешься отредактировать, скажем, / etc / hosts, мне все еще не разрешено редактировать его.
Что я делаю неправильно?
Хорошо, если бит в сером цвете - ваш my_script.sh, есть несколько проблем. Во-первых, псевдоним должен быть установлен в вашем .bashrc не в файле. Более подробно здесь.
Теперь на скрипте -r проверьте, читается ли файл, если он доступен для редактирования. Вероятно, вы читали, но не писали разрешения. Поэтому вы должны попробовать
#! /bin/bash
if test -w $1
then
/usr/bin/vi $1
else
sudo /usr/bin/vi $1
fi
Это должно сработать. Один совет, который я бы добавил, это то, что если у вас возникла проблема с сценарием bash: покройте его в отчетах эха! Один в начале, чтобы проверить, что он открывается, по одному с каждой стороны оператора if, чтобы увидеть, куда он идет.