|
|
|
|
Google Site
|
|||||||
| Форуми | Регистрация | Блог | Човекът Страници | Форум Правила | Връзки | Албуми | Често задавани въпроси | Потребители | Календар | Търся | Днешната Постове | Марк Форуми Прочети |
| Shell Програмиране и скриптове Пост въпроси за KSH, CSH, SH, Bash, Perl, PHP, SED, AWK И ДРУГИ черупки скриптове и черупки скриптови езици тук. |
![]() |
|
|
Нишка Инструменти | Търсене в тази нишка | Оцени резба | Покажи Режими |
|
|||
|
Проблемът с аргумента пространства и анализирането на
[Подготовка: дискусията по-долу ще се отнася за Java клас име HelloWorld. Неговата напълно неподходящи за тази командироването какво прави този клас, тъй като на проблем, който аз се опише трябва да правите с черупка, а не Java. Нейната само, че проблемът възниква заради мен, докато правиш някои кодиране, и не можех да мисля за една по-универсална илюстрация. Въпреки това, ако имате нужда от нещо конкретно, за да се дублира действията ми, тогава източник файл HelloWorld.java, че аз бях съдържащи текста Код:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Welcome, master");
}
}и аз използва javac HelloWorld.java] Да предположим, че изпълнява следната команда директно от черупката: Java-XX: OnError \u003d "gdb -% Р" HelloWorldТогава то работилница съвършено глоба, както очаквах. Сега, предполагам, че създам следния скрипт черупки: Код:
#!/bin/sh echo java -XX:OnError=\"gdb - %p\" HelloWorld java -XX:OnError=\"gdb - %p\" HelloWorld Резултатът сега е: Java-XX: OnError \u003d "gdb -% Р" HelloWorldДобре, на ехо линия изходи точно това, което бе преди изпълнени директно от черупката, но сценария опита да изпълни тя отказва. В съобщението за грешка, че загатки "gdb -% P"всъщност се тълкува като 3 различни думи за някои странни причина, а именно "gdbВсъщност, мисля, че мога да потвърдя това чрез модификация на скрипт за да се Код:
#!/bin/sh echo java -XX:OnError=\"gdb - %p\" HelloWorld set -x java -XX:OnError=\"gdb - %p\" HelloWorld set +x които изходи Java-XX: OnError \u003d "gdb -% Р" HelloWorldЗабележете как набор-X поставя първата двойка единични кавички около просто -XX: OnError \u003d "gdbи след това на следващата двойка около % P "Значи това, което е черупката скрипт правиш в своята интерпретация на текста, че черупката командния ред, не прави това причинява това на неуспех? Аз предполагам, че черупката скриптове не са точно като спаси командния ред сесии в края на краищата? Може ли да заобиколите това, като използва някакъв вид octal избягат или нещо за пространства вътре "gdb -% P"? |
| Спонсорирани Връзки | ||
|
|
|
|||
|
Цитат:
Код:
java -XX:OnError=\"gdb - %p\" HelloWorld по следния списък с аргументи .... 0: Java 1:-X: OnError \u003d "gdb 2: -- 3:% P " 4: HelloWorld Въпросът е ти какво всъщност искат-XX: OnError да бъде? |
|
|||
|
Съжалявам, ако моите inital psot е неясно. Искам
-XX: OnError \u003d "gdb -% P"да се тълкува като един аргумент, а не като 3 отделни аргументи, както е в момента се случва. Аз трябваше да спомена, че аз се опитах познае и пускането единични и двойни кавичките около него, всички, за да не се ползват. Това е много разочароващо аспект от SH файлове в сравнение с конвенционалните езици като Java, има толкова много gotchas, че се чувстваш като теб се стои на плаващ пясък понякога. |
|
|||
|
Опитайте бягство пространствата, които искате да се игнорира черупката .... Код:
-XX:OnError=\"gdb\ -\ %p\" или цитирате ... Код:
-XX:OnError="\"gdb - %p\"" |
|
|||
|
Цитат:
Независимо, аз се опитах го и той не работи. Аз също да се опита с помощта на octal код \ 040, вместо на пространството и командния сега изпълнява, но я използва буквално символа "\ 040", така че, ако някога Java грешка настъпили след което го няма в този момент. Имах преди това опитах кавички като това, което предлагаме, и в двете единични и двойни цитат версии, и двамата не успеят за мен. |
|
|||
|
В \ бягство работи за мен Solaris 9 С програмата компилира като a.out Код:
#include <stdio.h>
int main(int argc,char **argv)
{
int i=0;
while (i < argc) { printf("argv[%d]=%s\n",i,argv[i]); i++; }
return 0;
}скрипт ... Код:
#!/bin/sh ./a.out java "-XX:OnError=\"gdb - %p\"" HelloWorld продукция Код:
argv[0]=./a.out argv[1]=java argv[2]=-XX:OnError="gdb - %p" argv[3]=HelloWorld По същия начин ... Код:
#!/bin/sh -x ./a.out java -XX:OnError=\"gdb\ -\ %p\" HelloWorld дава Код:
argv[0]=./a.out argv[1]=java argv[2]=-XX:OnError="gdb - %p" argv[3]=HelloWorld |
|
|||
|
Може би това е вариант на Unix проблем. На cygwin, когато се използват Код:
\"gdb\ -\ %p\" Виждам едно пространство ( "") в ехо на изхода. Но Java команда не успее, защото сценария е все още по-горе тълкуване на линия като 3 отделни аргументи, вместо на един, така че Java командване смята, че тя е обект на менте избор на име "-". На Linux (2.6.9-022stab070.9-предприятие), за ехо продукция отново е правилна, но като цяло не успее команда се дължи на различни грешка. Хм ... |
| Спонсорирани Връзки |
|
|
![]() |
| Маркери |
| Tags |
| Linux |
| Нишка Инструменти | Търсене в тази нишка |
| Покажи Режими | Оцени тази тема |
|
|
Още UNIX и Linux Форум Теми Можете да намерим Полезни
|
||||
| Нишка | Нишка Начално | Форум | Отговори | Последно мнение |
| Проблем при преминаване аргумент на черупката скрипт | sumesh.abraham | Shell Програмиране и скриптове | 9 | 12-13-2006 12:07 ч. |
| Проблем с Аргументът Минавайки | A_Rod | Shell Програмиране и скриптове | 4 | 09-13-2006 12:47 ч. |
| аргумент синтактичния анализ на ... | midhun_u | Shell Програмиране и скриптове | 1 | 07-25-2006 11:38 AM |
| командния ред аргумент анализирането | rmjoe | UNIX за манекени Въпроси & Отговори | 1 | 07-28-2005 04:39 ч. |
| черупка скрипт аргумент анализирането | rmjoe | Shell Програмиране и скриптове | 1 | 07-28-2005 04:37 ч. |