Als «shell-script» getaggte Fragen

Fragen zu Shell-Skripten, ausführbaren Dateien, die von einer Shell interpretiert werden (bash, zsh usw.).

1
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, in Google nach "-", "$!" Zu …
41 shell-script  set 


5
Umgebungsvariablen in einer Datei durch ihre tatsächlichen Werte ersetzen?
Gibt es eine einfache Möglichkeit, Umgebungsvariablen in einer Datei zu ersetzen / auszuwerten? Angenommen, ich habe eine Datei config.xml, die Folgendes enthält: <property> <name>instanceId</name> <value>$INSTANCE_ID</value> </property> <property> <name>rootPath</name> <value>/services/$SERVICE_NAME</value> </property> ...etc. Ich möchte $INSTANCE_IDin der Datei den Wert der INSTANCE_IDUmgebungsvariablen $SERVICE_NAMEdurch den Wert der SERVICE_NAMEenv var ersetzen . Ich weiß …




2
Bash-Argumente mit Leerzeichen zu einer einzigen Zeichenfolge zusammenfügen
Ich versuche, alle Argumente einer Bash-Funktion in einer einzigen Zeichenfolge mit Leerzeichen zwischen den einzelnen Argumenten zusammenzufügen. Ich muss auch die Zeichenfolge einzelne Anführungszeichen um die gesamte Zeichenfolge enthalten. Folgendes habe ich bisher ... $array=("$@") str="\'" for arg in "${array[@]}"; do let $str=$str+$arg+" " done let $str=$str+"\'" Das funktioniert natürlich …

2
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 …



2
Warum ist die Verwendung von && 75-mal schneller als wenn ... fi und wie lässt sich Code klarer darstellen?
Ich habe den folgenden Arbeitscode: largest_prime=1 for number_under_test in {1..100} do is_prime=true factors='' for ((divider = 2; divider < number_under_test-1; divider++)); do remainder=$(($number_under_test % $divider)) [ $remainder == 0 ] && [ is_prime ] && is_prime=false && factors+=$divider' ' done [ $is_prime == true ] && echo "${number_under_test} is prime!" …


2
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 ${-.



Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.