2011-01-18 2 views
4

Rails 3 представил формат команды rails {c,s,g} для вызова консоли, сервера, генераторов и т. Д.Функция оболочки/псевдоним для рельсов console/server и т. Д. Для работы с рельсами 2 и 3

Назад с рельсами 2 У меня было alias c=script/console и другие, созданные для облегчения ввода.

Я хотел бы то же самое для рельсов 3, но я все еще поддерживаю рельсы 2 приложения. Могу ли я иметь псевдоним/функцию/другую оболочки, который проверял наличие скрипта/foo и запускал его, если он есть, иначе запустите рельсы 3 эквивалента?

Извините за ленивый вопрос; bash/zsh scripting предназначен для гниения своего бране imho, и я скорее надеюсь, что кто-то уже справится с этим.

ответ

6

Используйте -f тест

alias c="if [ -f script/console ]; then script/console; else script/rails console; fi"

+0

Круто, который работает. Я получаю 'zsh: нет такого файла или каталога: script/console' с приложением rails3, но он переходит к альтернативной команде. Приветствия. – noodl

+0

Я обновил свой ответ; Я понял, что логический ИЛИ может сделать вторую команду запущенной по другим причинам, кроме просто не существующей. –

+0

Например, если команда в конечном итоге вышла с ненулевым возвращаемым значением? – noodl