Альтернативный способ сделать это должно использовать инструменты добавления отступа VIM (обычно связываемый с </>). Сначала Вам нужен некоторый способ указать, какие строки будут затронуты. Можно использовать визуальный режим выбора или любые другие средства определения диапазона строк, которые будут затронуты, затем будут использовать произвольно высокое количество или уровни отступа для удаления. 9<
обычно добивается цели вполне приятно для удаления по крайней мере 9 уровней возможного добавления отступа (вкладки/пробелы) от текущей строки (строк).
Эта программа будет работать, где Ваш не делает:
#!/bin/bash
version="1.0";
preffix="ApplicationName.";
for f in pack*;
do
echo "bla bla bla" > myFile.txt
echo $preffix >> myFile.txt
echo "more stuff" >> myFile.txt
echo $version >> myFile.txt
done;
Ваша привязанность к пробелам делает Вашу программу более читаемой, и также заставляет ее не работать.
Кроме того, в то время как это не имеет значения для этой программы, это была бы действительно хорошая идея сделать это:
#!/bin/bash
version="1.0";
preffix="ApplicationName.";
for f in pack*;
do
echo "bla bla bla" > myFile.txt
echo "$preffix" >> myFile.txt
echo "more stuff" >> myFile.txt
echo "$version" >> myFile.txt
done;
Это вызвано тем, что, если Вы сделали что-то как:
version='1 2'
в Вашей исходной программе Вы закончили бы с несколько неожиданным результатом. Помещение кавычек вокруг Ваших переменных является действительно хорошей идеей предотвратить таинственные ошибки как этот.
$
знак перед переменными используется для чтения их.
Если Вы хотите присвоить им, необходимо не учесть $
знак, т.е.:
version="1.0"
preffix="ApplicationName."
Кроме того, ;
не требуются в конце строк присвоения.
echo "$preffix" >>myFile.txt
и echo "$version" >>myFile.txt
.
– Omnifarious
22.11.2012, 20:00
a='$(ls -l)'; echo $a; echo "$a"
распечатает$(ls -l)
дважды, это не возвращается и разворачивает его снова. – Kevin 22.11.2012, 20:14