[09:23] <p01nt3r> guten morgen. ich habe in einem shell-script in einer funktion folgendes stehen: STUFF="${0//file:\/\//}". ich weiß was da passiert aber ich kann nicht nachvollziehen wieso. kann mir das jemand genauer erläuert bzw. mir sagen, wo ich das nachlesen kann?
[09:25] <p01nt3r> handelt es sich dabei um parameter-expansion? falls ja, zu der zeichenfolge "${0//..}finde ich nirgends etwas, auch nicht in der man bash...
[09:33] <p01nt3r> habe jetzt was gefunden: "${var/pattern/replacement}" das sollte es sein.
[09:37] <p01nt3r> der string, der übergeben wird, lautet: file:///pfad/zur/datei/datei.xyz
[09:38] <p01nt3r> aber wieso dann zweimal // zwischen der 0 und dem file: ?
[09:41] <geser> wenn ich es richtig deute, dann soll an den Anfang ein file:// eingefügt werden
[09:41] <p01nt3r> geser, nein, es wird vom string entfernt
[09:42] <p01nt3r> heraus kommt dann der reine pfad ohne führendes file:///bla/blub/foo/bar/...
[09:42] <p01nt3r> also so: /bla/blub/foo/bar/...
[09:43] <p01nt3r> die 0 wird ersetzt durch die übergebene zeichenfolge, soweit klar, 
[09:44] <p01nt3r> ein / ist trennzeichen zum übergang von var zu pattern
[09:44] <p01nt3r> aber wieso noch eins?
[09:45] <geser> "If  pattern  begins with /, all matches of pattern are replaced  with  string."
[09:46] <p01nt3r> danach dann file://(beide slashes gequotet, also: \/\/)
[09:46] <geser> genau
[09:47] <p01nt3r> und der letzte / zum übergang von pattern zu replacement
[09:47] <p01nt3r> und ersetzt wird pattern durch nichts also kommt danach nichts mehr ausser dem }
[09:47] <geser> pattern ist "/file://" (ohne escaping) und string ist leer
[09:48] <p01nt3r> geser, woher hast du das: "If  pattern  begins with /, all matches of pattern are replaced  with  string."
[09:48] <geser> aus "man bash", Parameter Expansion, ${parameter/pattern/string}
[09:54] <p01nt3r> geser, also gehört das / vor dem file: nicht zum pattern selbst sondern ist eine art steuerzeichen, das bestimmt, welcher teil des ausdrucks passen muss (komplett/anfang/ende)?
[09:54] <p01nt3r> so wie # oder %
[09:55] <p01nt3r> geser, glaube ich habe es verstanden, DANKE DIR!
[10:07] <p01nt3r> geser, wobei das verdoppeln des ersten / in meinem fall eig. gar nicht benötigt wird, es würde nur weitere vorkommen von pattern durch replacement ersetzen, was bei mir niemals der fall sein dürfte :-D
[12:33] <p01nt3r> nochmal eine frage: im internet steht überall geschrieben, dass eine funktion via $1 ihren ersten parameter anspricht. bei mir nicht, bei mir ist $0 der erste parameter. wieso ist das bei mir so?
[12:34] <moveax> was gibt $0 denn aus?
[12:34] <moveax> http://tldp.org/LDP/abs/html/othertypesv.html
[12:34] <le_bot> Title: Special Variable Types (at tldp.org)
[12:34] <p01nt3r> das, was ich beim aufruf der funktion eben als ersten parameter angebe
[12:35] <moveax> $0 sollte eigentlich der name zum script sein
[12:35] <p01nt3r> auch in einer funktion?
[12:35] <moveax> ah
[12:35] <p01nt3r> :-)
[12:37] <p01nt3r> und $1 ist bei mir _innerhalb_ der funktion der 2. parameter.
[12:38] <p01nt3r> und so weiter...
[12:38] <dadrc> Skripte haben in $0 den Skriptnamen, Funktionen haben in $0 den ersten Parameter
[12:38] <p01nt3r> also schreiben die webseiten mist...
[12:38] <p01nt3r> oder ist das mal geändert worden?
[12:39] <stevieh> das geht doch so nicht.
[12:39] <stevieh> das muss doch mal jemand ändern.
[12:39] <dadrc> $-1
[12:40] <p01nt3r> ist aber auch verwirrend wenn $0 einmal es selbst ist und einmal das danach ^^
[12:40] <stevieh> ahwo.
[12:40] <moveax> alles sache vom scope
[12:40] <p01nt3r> danke.^^
[13:01] <cnill> Hallo zusammen
[13:01] <bimbam2103> Sorry falscher nick