#!/bin/bash
в качестве shebang. [ [
... ] ]
"$answer" -eq "nano" && "vi" && "vim" && "emacs"
не будет проверять ответ на соответствие этим четырем словам. определение функции
while read -p "What file editor would you like to use? (Nano) or (Vi)m " answer
do
answer=$(echo "$answer" | tr '[:upper:]' '[:lower:]')
case $answer in
( nano | vi | vim | emacs )
$answer ;
## OR
export EDITOR=$answer
break
;;
( * )
echo "This is embarassing, I didn't understand your input..."
;;
esac
done
export $answer=
, скорее всего, не сработает (в первый раз) или даст неожиданный результат (в следующий раз)$answer
для вызова редактора (или $answer "$myfile"
), export EDITOR=$answer
для его установки, export EDITOR=$(which $answer)
. Вы можете использовать ссылки
: ссылки -дамп https://linux.die.net/man/1/agrep | меньше
. Просто измените категорию и имя, и все будет хорошо.
В качестве альтернативы вы можете рассмотреть текстовый браузер lynx . Таким образом, вам нужно только ввести:
lynx https://linux.die.net/man/1/agrep
Это сработало для меня во многих ситуациях и, похоже, широко доступно в репозиториях программного обеспечения для многих систем.
Насколько я знаю, у вас есть версия для своей системы, я не думаю, что есть какой-либо способ сделать это, не получив номер версии из той, которую вы установили, и не заглянув на страницу руководства, которую вы пытаетесь прочитать. .
Если бы это была Ubuntu, вы могли бы использовать команду dman
из пакета bikeshed
. Из man dman
:
dman is a script that remotely retrieves manpages from
http://manpages.ubuntu.com, but reads them on the local system.
This is often useful to read a manpage of a utility that you do not
have installed on the local system.
It will cycle through each manpage section available for a given TOPIC.
IIRC, dman
- это сценарий, поэтому его можно изменить для работы с https://manpages.debian.org .
Использование онлайн-сервисов для отображения руководств - это круто, но как только я прочитал @Kusalananda комментируя извлечение справочных страниц из установочных пакетов, я каким-то образом одержим реализацией этого метода, который гарантирует, что я прочту правильное руководство для своего дистрибутива.
Единственная ошибка в приведенном ниже решении заключается в том, что оно основано на последних версиях apt / dpkg, которые доступны в Debian Testing 8.6 и могут быть недоступны в других системах.
Извлеките страницы руководства из.deb-файлы без загрузки
Найдите файл deb, как если бы вы планировали установить рассматриваемый пакет (например, yade):
apt-get --print-uris download yade
'http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb' yade_2016.06a-7_amd64.deb 1621148 SHA256:26c0d84484a92ae9c2828edaa63243eb764378d79191149970926aa3ec40cdd4
PS: переключатель --print-uris печатает URL-адрес пакета deb, но deb не загружается.
Найдите страницы руководства, скрытые в этом файле deb:
dpkg -c <(curl -sL -o- http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb) |grep "man/man" |grep -vE "\/$" |awk '{print $NF}'
./usr/share/man/man1/yade-batch.1.gz
./usr/share/man/man1/yade.1.gz
Прочтите страницу руководства yade.1.gz (без загрузки deb):
man <(dpkg-deb --fsys-tarfile <(curl -sL -o- http://httpredir.debian.org/debian/pool/main/y/yade/yade_2016.06a-7_amd64.deb) |tar -xO ./usr/share/man/man1/yade.1.gz)
страница руководства отображается правильно с использованием приложения man.
apt --version --> apt 1.4~beta2 (amd64)
dpkg --version --> Debian 'dpkg' package management program version 1.18.18 (amd64).
man --version --> man 2.7.6.1
tar --version --> tar (GNU tar) 1.29
curl --version --> curl 7.51.0 (x86_64-pc-linux-gnu) libcurl/7.51.0 GnuTLS/3.5.7 zlib/1.2.8 libssh2/1.7.0 nghttp2/1.17.0 librtmp/2.3
Альтернативный способ загрузки файла deb:
Метод Bellow, основанный на классическом apt-get, ar и tar, должен работать в любом дистрибутиве.
Файл deb загружается в текущий рабочий каталог, распаковывается справочная страница, а затем файл удаляется.
pkg="$1"
apt-get download "$pkg" 2>/dev/null
debname=$(find . -name "$pkg*.deb")
datatar=$(ar t "$debname" |grep "data.tar")
#ar t prints out the contents of the archive
if [[ ${datatar##*.} == "gz" ]];then #extension check
options="z"
elif [[ ${datatar##*.} == "xz" ]];then
options="J"
else
echo "data.tar archive inside deb is not a gz or xz archive. Exiting"
exit 1
fi
manpage+=($(ar p $debname $datatar | tar t"$options" |grep "man/man" |grep -vE "\/$" |awk '{print $NF}')) #tar t lists the files included in archive
man <(ar p "$debname" "$datatar" | tar xO"$options" ${manpage[@]})
#ar p and tar -O prints archive files / contents in stdout to be read by man
rm -f $debname #or rm -i for more control.
Использование manpages.debian.org
В качестве третьей альтернативы, с января 2017 года кто-то может использовать псевдоним / скрипт, который будет извлекать страницу руководства из debian nline на основе нового нового веб-сайта руководств debian, который сразу переходит к вам на правильную / самую последнюю страницу руководства нужного вам пакета:
alias debman='function __debman { links -dump https://manpages.debian.org/jump?q=$1 |awk "/Scroll to navigation/,0" |less; };__debman'
вызовите его с помощью терминала как $ debman yade