![]() |
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| двойная переменная декларации | kotasateesh | Shell программирование и сценарии | 3 | 08-31-2007 06:29 AM |
| Побег Букв двойным цитатой | navik_pathak | Shell программирование и сценарии | 1 | 01-05-2007 02:34 PM |
| одноместные и двухместные цитатой в SED | Асами | Shell программирование и сценарии | 2 | 07-17-2006 04:03 AM |
| Двойные кавычки в переменную | burton_1080 | Shell программирование и сценарии | 4 | 12-01-2005 01:44 PM |
| двойная замена переменной | asal_email2 | UNIX для чайников Вопросы И Ответы | 1 | 06-14-2005 01:35 AM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
Проблема с двойными цитатой строка и переменная
Здравствуйте,
У меня есть файл output.txt, который содержит одну строку со списком файлов в кавычки: "file1.ext" "file2.ext" "file3.ext" В скрипт, я хочу, чтобы получить линию и использовать его в качестве переменной в команду: ZIP archive.zip $ СПИСОК Я наклоняю получить работу. Когда я физически введите команду ZIP archive.zip "file1.ext" "file2.ext" "file3.ext", он работает просто отлично, но когда я пытаюсь использовать строки переменной я получаю сообщение об ошибке. Существует ли правильный способ сделать это? Спасибо! |
|
||||
|
Когда вы набираете в командной строке, в двойные кавычки, не передается в ZIP. Если вы используете скрипт (показать это!), А затем, если она проходит в кавычки, чтобы ZIP видит их, прекратить делать это.
Если у вас есть контроль над вещью, которая генерирует выходной файл, сделайте его использование менее смешной форме. Посмотрите, как xargs это, что, наверное, хорошей моделью для вас. |
|
||||
|
Цитата:
Почтовые ваш текущий код (или просто соответствующую часть) для получения дополнительных сведений. |
|
||||
|
Цитата:
Код:
LIST=$(tail -1 $FILE) cvs log -N -r$rev1:$rev2 $LIST > changelog.txt Мой файл выглядит так: Код:
"java/file1.java" "java/file2.java" "java/file3.java" "java/file4.java" "java/file5.java" Это выход из обработки XSLT, так у меня есть контроль над ней. Я могу создать файл, который выглядит так, без кавычек, и мой скрипт работает прекрасно: Код:
java/file1.java java/file2.java java/file3.java java/file4.java java/file5.java Но я хотел бы оберните вокруг файлов котировки в случае, если некоторые из файлов, содержащих whitespaces. Так может быть, я должен работать только на моей таблицы стилей, чтобы избежать whitespaces в именах файлов? |
|
||||
|
Или, если у вас есть возможность, сделать это один файл на строку (и беспокоиться об именах файлов с новой строки в них вместо ...).
xargs имеет возможность пользоваться нулевым (ASCII 0x00) терминаторе для данного конкретного случая. (Nulls и слэши являются только два символа, которые запрещены в каталоге вход имена.) |
|
||||
|
Если вы хотите сделать эту работу со сценарием, вы можете попробовать код следующим образом: Код:
#!/bin/bash INFILE=output.txt #replace the double quote with space LIST=$(sed -e 's/\"/ /g' $INFILE) zip archive.zip $LIST exit 0 |
|
||||
|
Проблема с двойными цитатой строка и переменная
Вот быстрого решения для вашего скрипта
СПИСОК \u003d $ (-1 $ гузки ФАЙЛОВ) CVS журнал-N-R $ REV1: $ rev2 $ ($ EVAL СПИСОК)> changelog.txt -Рамеш |
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|