Als «shell-script» getaggte Fragen

42
Wie man ein Array von Zeilen in zsh richtig sammelt

Ich dachte, das Folgende würde die Ausgabe von my_commandin einem Array von Zeilen gruppieren : IFS='\n' array_of_lines=$(my_command); Das $array_of_lines[1]würde sich auf die erste Zeile in der Ausgabe von my_command, $array_of_lines[2]auf die zweite und so weiter beziehen . Der obige Befehl...

41
Variable als Befehl; eval vs bash -c

Ich habe ein Bash-Skript gelesen, das jemand erstellt hat, und ich habe festgestellt, dass der Autor eval nicht verwendet, um eine Variable als Befehl auszuwerten. Der Autor verwendete bash -c "$1" Anstatt von eval "$1" Ich gehe davon aus, dass eval die bevorzugte Methode ist und wahrscheinlich...

41
Was macht "set -" in diesem Dockerfile-Eintrittspunkt?

Ich versuche zu verstehen, was dieser Docker-Eintrittspunkt tut . Es scheint mir, dass dies ein sehr verbreitetes Muster beim Schreiben von Dockerdateien ist, aber meine Bash-Fähigkeiten sind begrenzt und ich habe keine Ahnung von all den speziellen Bash-Symbolen Kung Fu. Außerdem ist es schwierig,...

41
Rekursives Finden der größten Datei

Ich versuche, die größte Datei in einem Verzeichnis rekursiv zu finden. Befindet sich in diesem Verzeichnis ein Unterverzeichnis, muss die Funktion in dieses Verzeichnis wechseln und prüfen, ob die größte Datei vorhanden ist. Sobald die größte Datei gefunden wurde, wird die Ausgabe mit dem...

39
Wie funktioniert awk '! A [$ 0] ++'?

Dieser Einzeiler entfernt doppelte Zeilen aus der Texteingabe ohne Vorsortierung. Beispielsweise: $ cat >f q w e w r $ awk '!a[$0]++' <f q w e r $ Der Originalcode, den ich auf den Internets gefunden habe, lautete: awk '!_[$0]++' Dies war für mich noch verwirrender, als ich _eine besondere...

37
Was bedeutet "$ {- # * i}"! = "$ -"?

Darin /etc/profilesehe ich Folgendes: for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "${-#*i}" != "$-" ]; then . "$i" else . "$i" >/dev/null 2>&1 fi fi done Was heißt ${-#*i}das ? Ich kann keine Definition einer beginnenden Parametererweiterung finden