Verwendung von Variablen mit einfachen Anführungszeichen, CSH

265
dusty

Ich habe ein kurzes Skript, das für die Serverwartung gedacht ist, aber ich kann nicht herausfinden, wie man Variablen in meinem Skript richtig verwendet. Hier ein Codebeispiel, um es klarer zu machen:

--members "fmcfsv05a:aggr1_fmcfs05n01a_L" "businessgroup=='MDO'&&project==' $i '&&qslot=='Martini'" 

In diesem Beispiel ist "$ i" meine Variable, die Ausgabe führt jedoch immer noch dazu:

--members "fmcfsv05a:aggr1_fmcfs05n01a_L" "businessgroup=='MDO'&&project==' $i '&&qslot=='Martini'" 

wenn mit -v lief. Irgendwelche Ideen, wie man Variablen in einfache Anführungszeichen zwingt?

0
Empfehlung: Verwenden Sie sh / ksh / bash für Skripte. Csh weist Inkonsistenzen beim Parsing von Befehlszeilen an verschiedenen Punkten auf und führt zu langwierigem und frustrierendem Debugging mpez0 vor 9 Jahren 3
Was @ mpez0 sagte. Ich habe das auf lange und frustrierende Weise gelernt. Jarmund vor 9 Jahren 0

1 Antwort auf die Frage

0
ckujau

Ohne auf die Details einzugehen, warum Sie CSH vermeiden sollten, lief dies hier gut:

$ cat test.csh  setze i = "$ 1" / bin / echo --members "fmcfsv05a: aggr1_fmcfs05n01a_L" "businessgroup == 'MDO' && project == '$ i' && qslot == 'Martini'"  $ csh test.csh foo --members fmcfsv05a: aggr1_fmcfs05n01a_L businessgroup == 'MDO' && projekt == 'foo' && qslot == 'Martini'  $ dpkg-query -W csh csh 20110502-2.1