2015-01-21 2 views
0

в рубин, когда вы пишете Deploy сценарий говорят в Capistrano, вы можете использовать exec для выполнения команд, как всегда, что вы делаете, когда у вас есть EXEC линия это долго:Как вы разделяете длинные команды exec?

exec 'bundle exec promiscuous publish "Xaaron::User.all" && bundle exec promiscuous publish "Xaaron::Role.all" && bundle exec promiscuous publish "Xaaron::Permission.all" && bundle exec promiscuous publish "Xaaron::ApiKey.all"' 

Он работает, он работает , он делает то, что я хочу, но я должен добавить к нему больше. И это немного длиннее. Итак, как мне разбить его на несколько строк и все еще работать нормально?

ответ

2

Вы можете разбить строку на отдельные строки:

exec "bundle install && " + 
    "apt-get install nginx && " + 
    "cat file" 
4

Что о

exec [ 
    'bundle exec promiscuous publish "Xaaron::User.all"', 
    'bundle exec promiscuous publish "Xaaron::Role.all"', 
    'bundle exec promiscuous publish "Xaaron::Permission.all"', 
    'bundle exec promiscuous publish "Xaaron::ApiKey.all"', 
].join(" && ") 

или в данном конкретном случае,

exec %w[User Role Permission ApiKey] 
.map{|e| "bundle exec promiscuous publish \"Xaaron::#{e}.all\""}.join(" && ") 
Смежные вопросы