Ich suche nach einer einfachen und zuverlässigen Möglichkeit, den Namen der aktuellen Shell aus einem Skript oder einer Quelldatei ( nicht über die Befehlszeile) abzurufen . Ich hätte erwartet, nur zu tun, $(basename "$SHELL")aber wenn meine Login-Shell ist zshund ich den folgenden Code in some_script.sh habe this_shell=$( basename "$SHELL" ) …
Ich habe mich umgesehen, konnte aber nichts aussagekräftiges finden. Gibt es einen Unterschied zwischen dem Alias-Befehl in zsh und dem Alias-Befehl in bash? Wenn nicht, kann ich dann eine Reihe von Aliasnamen zwischen den beiden Shells teilen und erwarten, dass sie wie beabsichtigt funktionieren?
Ich versuche, Loops und Array-Manipulation in zu lernen zsh. Angenommen, ich habe zwei Arrays in zsh mit derselben unbekannten Anzahl von Elementen, von denen jedes eine Liste von Pfaden enthält, z LOCAL_ARRAY=($LOCAL_PATH_1 $LOCAL_PATH_2 $LOCAL_PATH_3) REMOTE_ARRAY=($REMOTE_PATH_1 $REMOTE_PATH_2 $REMOTE_PATH_3) Ich möchte beide Arrays gleichzeitig mit einem gemeinsamen Index durchlaufen, damit ich Folgendes …
Dies funktioniert in Bash: touch a b c echo !(a) Wenn ich das obige Skript in zsh (mit kshglobon) ausführe , beschwert es sich: zsh: number expected Wenn ich hinzufügen , |nach a, es funktioniert: echo !(a|) Warum?
In Bash kann ich schreiben: caller 0 und erhalten Sie den Anruferkontext : Zeilennummer Funktion Skriptname Dies ist äußerst nützlich für das Debuggen. Gegeben: yelp () { caller 0; } Ich kann dann schreiben yelp, um zu sehen, welche Codezeilen erreicht werden. Ich kann implementieren caller 0in bash: als echo …
Ich möchte alle Dateien in einem Ordner zur Liste genannt , foldernamedass die Erweiterung hat test, atestoder btest. Mein unmittelbarer Gedanke war zu rennen ls ./foldername/*.{a,b,}test Dies funktioniert einwandfrei, es sei denn, die Erweiterung enthält nichts atest. In diesem Fall wird der Fehler angezeigt zsh: no matches found: ./foldername/*.atest. Kann …
Ich habe mit Fischen rumgespielt und dieses praktische Verhalten bemerkt Wenn ich tippte wget -<tab><tab><tab>, wurde ich in ein interaktives Menü gestellt. Beim Tippen habe ich jedoch die Beschreibungen der Argumente selbst durchsucht. Ich habe dies in zsh versucht, und die Eingabe in dieses Menü schien mich nur zu meiner …
zsh verfügt über ein Vervollständigungssystem, das durch Drücken der Tabulatortaste aktiviert wird: llama@llama:~$ git st<Tab> Completing main porcelain command stash -- stash away changes to dirty working directory status -- show working-tree status Completing plumbing internal helper command stripspace -- filter out empty lines Ich konnte nur herausfinden, dass dies …
Kann jemand erklären, was in diesem Befehl vor sich geht: echo foo >&2 | grep foo Zsh (5.0.2) wird foozweimal gedruckt . Eine scheinbar zu stdout und eine zu stderr, da diese Befehle ausgeführt werden: { echo foo >&2 | grep foo } >/dev/null und: { echo foo >&2 | …
Ich habe den folgenden Befehl verwendet, um eine Liste der URLs zu erstellen, die ich testen möchte: echo -e localhost:8080/reports/{promos,promo-updates,scandown}/{130,139,142}{,-unburdened,-burdened}{,.pdf,.xls,.xlsx,.csv,.preload}"\n" >> urls.txt Leider hatten die an urls.txtjeden angehängten URLs ein Leerzeichen vor sich (außer natürlich dem ersten). Ich verstehe, warum das passiert ist, und mir ist klar, dass ich es …
Wird /etc/pathsvon jeder Shell gelesen , die ich unter OS X ausführe? Wenn ich beispielsweise zsh verwende, wird es /etc/pathzum Auffüllen analysiert $PATH? Was genau ist die Reihenfolge, in der OS X zum Auffüllen folgt $PATH? Macht es das anders als andere Unices?
Ich versuche ein einfaches Skript zu erstellen, das unter anderem eine Subshell erstellt: #!/bin/sh # setup "${@:-$SHELL}" # teardown Die Frage ist: Ich muss die Standardaufforderung ändern, also zum Beispiel: $ # Standard-Shell $ ./myscript (Myscript) $ # Subshell (Myscript) $ exit $ Ich habe versucht mich zu ändern PROMPTund …
Ich möchte eine Reihe von Dateien verarbeiten, die mit einigen Suffixen enden. Deshalb habe ich das folgende zsh-Skript geschrieben, aber es hat nicht funktioniert. EXT=(.jpg .png .gif) EXT=${(j.|.)EXT} # EXT becomes '.jpg|.png|.gif' for f in *($EXT); do # should become '*(.jpg|.png|.gif)' but failed process-one-file $f done Warum funktioniert es nicht? …
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.