$ ls -l /tmp/test/my\ dir/ total 0 Ich habe mich gefragt, warum die folgenden Methoden zum Ausführen des obigen Befehls fehlschlagen oder erfolgreich sind. $ abc='ls -l "/tmp/test/my dir"' $ $abc ls: cannot access '"/tmp/test/my': No such file or directory ls: cannot access 'dir"': No such file or directory $ …
Dies wird einfach sein, aber in meinen Erinnerungen würde die Verwendung von doppelten Anführungszeichen beim Erstellen von Shell-Skripten das Erweitern von Globbing und Variablen ermöglichen. Aber im folgenden Code: #!/bin/sh echo *.sh echo "*.sh" echo '*.sh' echo $LANG echo "$LANG" echo '$LANG' Ich bekomme dieses Ergebnis: bob.sh redeployJboss.sh *.sh *.sh …
Ich möchte wissen, welche Dateien die Zeichenfolge haben $Id$. grep \$Id\$ my_dir/mylist_of_files gibt 0 Vorkommen zurück. Ich entdeckte, dass ich verwenden muss grep \$Id$ my_dir/mylist_of_files Dann sehe ich, dass das $Idin der Ausgabe farbig ist, dh es wurde abgeglichen. Wie könnte ich den zweiten $abgleichen und warum funktioniert das nicht …
Ich versuche zu überprüfen, ob es sich bei einer Eingabe um eine Ganzzahl handelt, und ich habe sie hundert Mal durchgesehen, sehe aber den Fehler darin nicht. Leider funktioniert es nicht, es löst die if-Anweisung für alle Eingaben (Zahlen / Buchstaben) aus read scale if ! [[ "$scale" =~ "^[0-9]+$" …
Ich gebe oft komplexe Befehle über ssh aus. Diese Befehle beinhalten die Weiterleitung an awk oder perl einzeilig und enthalten daher einfache Anführungszeichen und $. Ich habe weder eine feste Regel gefunden, um das Zitat richtig zu machen, noch eine gute Referenz dafür gefunden. Betrachten Sie zum Beispiel Folgendes: # …
Ich lese heute ein Shell-Tutorial von http://www.tutorialspoint.com/unix/unix-quoting-mechanisms.htm In dem es erwähnt: Wenn ein einzelnes Anführungszeichen in einer auszugebenden Zeichenfolge enthalten ist, sollten Sie nicht die gesamte Zeichenfolge in einzelne Anführungszeichen setzen, sondern dies mit einem Backslash () voranstellen: echo 'It\'s Shell Programming' Ich habe es auf meinem Centos-Server versucht, es …
ssh hat eine nervige Funktion, wenn Sie ausführen: ssh user@host cmd and "here's" "one arg" Anstatt das cmdmit seinen Argumenten hostauszuführen, verkettet es das cmdund die Argumente mit Leerzeichen und führt eine Shell aus host, um den resultierenden String zu interpretieren (ich denke, deshalb heißt sie sshund nicht sexec). Schlimmer …
Ich habe gelesen, dass Sie doppelte Anführungszeichen zum Erweitern von Variablen benötigen, z if [ -n "$test" ]; then echo '$test ok'; else echo '$test null'; fi wird wie erwartet funktionieren, während if [ -n $test ]; then echo '$test ok'; else echo '$test null'; fi wird immer sagen, $test …
Ich habe Probleme, die Grundlagen der Bash-Skripterstellung zu verstehen. Folgendes habe ich bisher: #!/bin/bash FILES="/home/john/my directory/*.txt" for f in "${FILES}" do echo "${f}" done Ich möchte nur alle .txtDateien in einer forSchleife auflisten, damit ich sie bearbeiten kann. Aber der Raum in my directoryund der Stern in spielen *.txteinfach nicht …
Diese Frage wurde von Server Fault migriert, da sie unter Unix und Linux Stack Exchange beantwortet werden kann. Vor 8 Jahren migriert . Der echoBefehl enthält nicht den vollständigen Text, den ich ihm gebe. Zum Beispiel, wenn ich tue: $ echo ' echo PARAM=` grep $ARG /var/tmp/setfile | awk '{print …
Nehmen wir an, wir haben zwei Ganzzahlen in einem Bash-Skript: value1=5 value2=3 Warum müssen wir dann im Falle eines Tests doppelte Anführungszeichen verwenden? Beispielsweise: if [[ "$value1" -eq "$value2" ]] Warum nicht einfach folgendes verwenden? if [[ $value1 -eq $value2 ]] Für mich machen die doppelten Anführungszeichen keinen Sinn.
Ich habe einen Ordner, in dem ich ca. 4k Dateien habe. Einige dieser Dateien beginnen mit aa ?oder einem !Zeichen. Ich muss sie löschen, kann aber keinen entsprechenden Ausdruck finden: rm -f ./?* löscht einfach alles. Möglicherweise kann ich grepls verwenden und es weiterleiten und xargsDateien in einen anderen Ordner …
Ich habe ein Python-Skript ausgeführt, das eine Fehlfunktion aufwies und sudozum Erstellen einer Datei mit dem Namen verwendet wurde >. Wie kann ich diese Datei entfernen? Wenn ich es versuche sudo rm >, erhalte ich natürlich den Fehler bash: syntax error near unexpected token 'newline', weil es den Anschein hat …
Was ist der Unterschied zwischen diesen drei Befehlen? echo `date` echo "`date`" echo '`date`' Ich bin verwirrt über die tatsächlichen Unterschiede. Ich denke, wenn die 'um es bedeutet, dass es eine Zeichenfolge ist, würde Echo daher buchstäblich die Zeichenfolge ausgeben, dateanstatt das Datum anzuzeigen?
Ich habe gerade ein älteres Shell-Skript (geschrieben in ksh88 unter Solaris) geöffnet und festgestellt, dass sich Folgendes im gesamten Code wiederholt: [ -f $myfile ] && \rm -f $myfile Der entkommende Backslash kommt mir komisch vor. Ich weiß, dass es absichtlich ist, da diese Art der (scheinbar nutzlosen) Flucht im …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.