LINUX.ORG.RU

Алиас tcsh


0

1

Здравствуйте! Перевожу слово stardict'ом и дописываю перевод в файл.

alias sd    "sdcv -n >> file_name"
Набираю:
&sd  any_word
Получаю файл.

Хочу этот файл сразу просматривать:

alias  sd   "sdcv -n >> file_name  &&  vim file_name"
Не работает. (шелл ничего не сообщает, вим есть в процессах, по ctrl-c открывается пустой файл в виме). Помогите советом.


Ответ на: комментарий от OramahMaalhur

это я протупил, сори.
в первом случае ты юзаешь `sd слово`, да? sdcv передаётся слово в качестве параметра
во втором случае `sd слово` передаст слово vim'у в качестве параметра.

решение - напиши маленький скриптик вместо алиаса

OramahMaalhur
()
Ответ на: комментарий от OramahMaalhur

во втором случае `sd слово` передаст слово vim'у в качестве параметра.

Нет, vim должен отобразить весь файл (со всеми предыдущими переводами). Видимо, нужно переформулировать вопрос: почему не удаётся применить &&?

avi
() автор топика
Ответ на: комментарий от anonymous

предыд. команда возвращает ненулевой статус?

То есть

"sdcv -n >> file"
? Да.

avi
() автор топика

Параметры просто подставляются после тела алиаса. Получается:

sdcv -n >> file_name && vim file_name тут параметры алиаса

В результате -> фейл.

geekless ★★
()
Ответ на: комментарий от OramahMaalhur

>anyword передаётся виму, а не sdcv.
Нет. Поясню: без ключа -n (non-interactive) получается всё как должно быть: открывается файл с записанным в нём приглашением stardict'a: enter word or phrase (то есть конвейер работает как должен работать).

avi
() автор топика
Ответ на: комментарий от avi

Нет.

Да.

vadim@host3:~$ tcsh
> alias bla "echo 1 && echo 2"
> bla qwerty
1
2 qwerty
> exit
geekless ★★
()
Ответ на: комментарий от avi

stormchild@s:~$ sdcv -n
Не задано слова/фразы для перевода.
stormchild@s:~$ sdcv -n этот_параметр_передастся_виму
Ничего похожего на этот_параметр_передастся_виму, извините :(

OramahMaalhur
()
Ответ на: комментарий от avi

Что это было? Ты открыл для себя подстановку параметров в alias'ы?

Раз уж ты пользуешься csh вот тебе еще alias

alias MATH  'set \!:1 = `echo "\!:3-$" | bc -l`'

для мат. вычислений в стиле csh
использование

set y = 5
MATH x = sqrt($y * $y)
echo $x
anonymous
()
Ответ на: комментарий от anonymous

>Что это было?

Не поверите: решение проблемы.

avi
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.