Вы пропускаете то, что вызов к gvim не блокируется, пока Вы не выходите из gvim, он сразу возвращается. Так xsel < /tmp/xselection
обрабатывает файл перед редактированием его.
Псевдонимы Shell, по определению, не дают Вам способа использовать их условно. Они относятся к чему-либо, что Вы выполняете от интерактивной подсказки.
Путем можно сделать, это с функцией вместо этого. (См. В Bash, когда исказить, когда написать сценарий, и когда записать функцию? для больше на том, почему это отличается.)
function python () {
test -z "$1" && ipython || command python "$@"
}
Что-то вдоль тех строк в емкостно-резистивном файле Вашей оболочки заставит Вашу оболочку выполнять эту функцию вместо двоичного файла непосредственно. Если первым аргументом будет пробел, то он исчерпает ipython для Вас, иначе он передаст все аргументы любому двоичному файлу Python, находится в Вашем пути (отметьте использование command
вынудить двоичный файл, а не функцию выполнить и вызвать рекурсию на себе).
Не уверенный, если можно сделать это в псевдониме zsh, но почему бы не всунуть этот маленький сценарий оболочки Ваш ~/bin
как python
:
#!/bin/bash
if test -z "$1"; then
exec /usr/bin/ipython
else
exec /usr/bin/python "$@"
fi
python ''
, и Вы также выполните Python еслиipython
возвращает код выхода> 0.function
также делает этот неPOSIX, когда это не должно действительно быть. – Chris Down 16.02.2013, 17:38ipython
должен смочь обработать его. Еслиipython
сбои по некоторым причинам (такой как не существующий в системе), пробуя обычный Python походили на хороший вариант. Используяfunction
просто конвенция ZSH, но Ваше право она работала бы без этого. – Caleb 16.02.2013, 17:46