2017-01-23 1 views
1

Я сжимаю JS-файл для производства, надеясь автоматизировать бит скуки, необходимый перед сжатием; первая линия которого:Сценарий оболочки для изменения var в файле перед сжатием?

var deploy = false, test_ads_dev = false, show_interstitial = false,

мне нужно var deploy = false изменен var deploy = true, в файле: app/assets/game.js (как в команде компрессора).

Как я могу получить скрипт для выполнения подписки?

#!/bin/bash 
first="var deploy = false" 
second="var deploy = true" 
first=${first/$second} 
java -jar yuicompressor-2.4.8.jar -v -o game.min.js app/assets/game.js 
+0

Какое ваше ожидание? – Inian

+0

Мне нужно 'var deploy = false' изменено на' var deploy = true'. Благодарю. – tidelake

+0

Я бы подумал, что небольшая команда sed, возможно, используя вариант редактирования «на месте», позволит вам искать то, что вы ищете. – Fred

ответ

1

Просто используйте минимальное sed для этого ниже, чтобы сделать замену на месте.

sed -i.bak 's/\<var deploy = false\>/var deploy = true/' app/assets/game.js 

bash не совсем правильный инструмент, чтобы сделать шаблон поиска/замены текстовых файлов, в то время как sed или awk будет.

+0

, который не работает, по-прежнему показывает 'var deploy = false' – tidelake

+0

@tidelake: Ваш предыдущий комментарий оскорбителен, так как люди не находят ответы, не тестируя его, он отлично работал для меня – Inian

+0

Есть ли что-нибудь для '-i.bak', возможно, я не могу? – tidelake

0

Спасибо, ребята. Я получил еще 60% ответа от себя.

#!/bin/bash 
sed -i.bak 's/var deploy = false/var deploy = true/' app/assets/game.js 
java -jar yuicompressor-2.4.8.jar -v -o game.min.js app/assets/game.js 
mv app/assets/game.js.bak app/assets/game.js 
+0

Это можно улучшить, процитировав первую часть 'sed', так что он заменит точное соответствие «var deploy = false». Если вы не хотите, чтобы исходный файл был изменен, удалите '-i' и направьте вывод в другой файл. –

Смежные вопросы