Online video hd

Смотреть аниме видео

Официальный сайт avufa 24/7/365

Смотреть видео бесплатно

blackraven 05.08.2011 02:09

Есть вопрос!Zsh - хочу невозможного?

Привет народонаселение!

Вопрос возник такой... Я человек сильно ленивый, и иногда бывают случаи, что нужно прочитать файл в папке, которую только что от-ls-ил. В этом случае нужно нажать стрелку вверх, и исправить команду в начале строки. (ну и допечатать/дотабать имя файла).
Я конечно понимаю, что это - три клавиши (в моем случае - исправить ll на l, то есть Ctrl+A и Del), но хочется и этого избежать...
Можно ли нарисовать алиас (или функцию) в zsh, которая бы сама думала, чего я хочу сделать? Т.е. чтобы когда я говорю:
1
$ l /home/blackraven

- она мне выводила вывод ll,

а когда я говорю
1
$ l /home/blackraven/.xsession-errors

- делала less?

ЗЫ да, я гуглил. С ходу ничего не нашел - или не придумал, что именно гуглить...


Тэги: zsh лень
+ 2 -
Похожие Поделиться

blackraven 05.08.2011 02:10 #
+ 0 -
Ой... А чего такое жуткое отображение code-тегов?.. Откуда такая отбивка снизу?..
razum2um 05.08.2011 03:37 #
+ 0 -
ищите как определить является ли параметр в функции дирой или файлом.
в баше это [ -f $NAME ] и [ -d $NAME ]
tn1 05.08.2011 04:32 #
+ 1 -
> в баше это [ -f $NAME ] и [ -d $NAME ]
Это не bash, а test(/usr/bin/test).
ananas 05.08.2011 09:45 #
+ 2 -
test или [ - встроенная команда bash еще со 2-й версии. man bash, раздел SHELL BUILTIN COMMANDS
tn1 05.08.2011 14:26 #
+ -1 -
Значит, продублировали функционал:
1
2
[ $ qfile /usr/bin/test 
sys-apps/coreutils (/usr/bin/test)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/bin/bash

if /usr/bin/test -d /home
then
    echo dir
elif /usr/bin/test -f /home
then
    echo file
else
    echo mutant
fi

1
2
[ $ ./script.sh 
dir
ananas 05.08.2011 14:34 #
+ 2 -
test из coreutils нужен для всяких ash и прочих posix-compatible shells. в баше-же не продублировали функционал, а избавились от кучи лишних fork-ов. if [...] - одна из самых распространенных конструкций в скриптах, и каждый раз дергать ради нее внешнюю утилиту - жуткий оверхед
tn1 05.08.2011 19:13 #
+ 0 -
Ясно, спасибо.
blackraven 06.08.2011 00:49 #
+ -1 -
Специально залез в ман и проверил, ибо всегда считал по другому...
Встроенная команда баш - [[]]. [] - это test. Кстати, я неоднократно натыкался на это, ибо например:
1
[ "start" == "$1"]; then

в баше не работает ибо вызывается test, который не знает об ==, однако
1
[[ "start" == "$1" ]]; then

работает точно так же как
1
[ "start" -eq "$1" ]; then
blackraven 06.08.2011 00:52 #
+ 1 -
Перечитал ман еще раз.. Беру свои слова обратно - был пьян :)
[] и test оказывается тоже builtin... Однако это не отменяет разницы между [] и [[]].
mironov_orig 05.08.2011 09:52 #
+ 1 -
Ну вообще-то, строго говоря это bash built-in. Можете сверится с маном, сорцами, strace'ом или, если баш 4.2+, то с помощью
1
2
3
4
5
$ somevar='';
$ [ -v somevar ] && echo 'somevar exist';
somevar exist
$ /usr/bin/[ -v s ] && echo y
/usr/bin/[: -v: ожидается унарный оператор
ananas 05.08.2011 09:40 #
+ 6 -
function l () { [[ -f "$1" ]] && less "$1" || ls -l "$1" }
mironov_orig 05.08.2011 09:53 #
+ 0 -
Опередил )
blackraven 06.08.2011 00:45 #
+ 0 -
Ну, пришлось дополнить по аналогии:
1
[[ -z "$1" ]] && ls -la || ( [[ -f "$1" ]] && less "$1" || ls -la "$1" )

Ибо иначе без указания папки не работает.
Спасибо :)
ananas 06.08.2011 09:01 #
+ 2 -
проще function l () { [[ -f "$1" ]] && less "$1" || ls -la "${1:-.}" }
Daria 09.08.2011 11:28 #
+ 0 -
ухты, за конструкцию "${1:-.}" жму руку.

mironov_orig 09.08.2011 12:05 #
+ 0 -
Да прочитайте вы уже man bash
Daria 09.08.2011 13:37 #
+ 0 -
читали, знаем, но все 5375 строк наизусть не помню.
mironov_orig 09.08.2011 19:40 #
+ 0 -
Ну значит и эту конструкцию забудешь через пару дней, раз не помнишь (ибо похоже на практике эти фичи не используешь). Все (у меня кстати 3381) строки помнить совершенно необязательно, достаточно знать, что такая-то возможность есть и как её найти.
mironov_orig 09.08.2011 12:22 #
+ 0 -
Открой для себя много нового здесь

Смотреть видео онлайн

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн