Fragen speziell zu GNUs Bourne Again SHell im Gegensatz zu anderen Bourne / POSIX-Shells. Verwenden Sie bei Fragen zu Unix-Shells im Allgemeinen stattdessen das Tag / shell.
Wenn ich die IFSVariable auf ein Leerzeichen setze , werden bashmehrere Leerzeichen als ein Leerzeichen behandelt ( myprogramein Programm, das die empfangenen Befehlszeilenargumente ausgibt): IFS=" " x="hello hi world" ./myprogram $x argv[1] = hello argv[2] = hi argv[3] = world Wenn ich die IFSVariable jedoch auf ein Komma setze bash, …
Ich suchte nach einer Möglichkeit, Hexadezimalzahlen über die Befehlszeile zu konvertieren, und fand heraus, dass es eine sehr einfache Methode gibt echo $((0x63)). Es funktioniert großartig, aber ich bin ein wenig verwirrt darüber, was hier passiert. Ich weiß, $(...)ist normalerweise eine Unterschale, in der der Inhalt vor dem äußeren Befehl …
Ich habe dieses Shell-Skript in einer Datei gespeichert: Es führt einige grundlegende String-Ersetzungen durch. #!/bin/sh html_file=$1 echo "html_file = $html_file" substr=.pdf pdf_file="${html_file/.html/.pdf}" echo "pdf_file = $pdf_file" Wenn ich es in die Kommandozeile einfüge, funktioniert es einwandfrei: $ html_file="/home/max/for_pauld/test_no_base64.html" echo "html_file = $html_file" substr=.pdf pdf_file="${html_file/.html/.pdf}" echo "pdf_file = $pdf_file" gibt html_file …
Ich habe darüber gelesen, dass ich Variablen in bash zitieren sollte, zB "$ foo" anstelle von $ foo. Beim Schreiben eines Skripts stieß ich jedoch auf einen Fall, in dem es ohne Anführungszeichen, jedoch nicht mit diesen funktioniert: wget_options='--mirror --no-host-directories' local_root="$1" # ./testdir recieved from command line remote_root="$2" # ftp://XXX …
Warum wechselt die Eingabeaufforderung bei Eingabe dieses Befehls in mein Verzeichnis? PS1='$(pwd)' Ich verwende einfache Anführungszeichen, was keine Interpolation bedeutet, auch bekannt als echo '$(pwd)'- →$(pwd) Sagen Sie außerdem, dass wir geklärt haben, warum dies funktioniert. Warum funktioniert es anders als PS1=$(pwd)? (überhaupt keine Anführungszeichen) Mit "anders" meine ich, dass …
In my verwende .profileich den folgenden Code, um sicherzustellen, dass Bash-bezogene Aliase und Funktionen nur bezogen werden, wenn die Anmeldeshell tatsächlich Bash ist : # If the current (login) shell is Bash, then if [ "${BASH_VERSION:-}" ]; then # source ~/.bashrc if it exists. if [ -f "$HOME/.bashrc" ]; then …
Ich bin immer sehr zurückhaltend, $IFSweil es ein globales Problem ist. Aber oft macht es das Laden von Strings in ein Bash-Array nett und prägnant, und für Bash-Skripte ist es schwierig, Prägnanz zu finden. Also denke ich, es ist vielleicht besser als gar nichts, wenn ich versuche, den Anfangsinhalt einer …
Diese Frage wurde von Server Fault migriert, da sie unter Unix und Linux Stack Exchange beantwortet werden kann. Vor 4 Jahren migriert . Ich habe das folgende Skript, um einen MySQL-Prozess zu starten: if [ "${1:0:1}" = '-' ]; then set -- mysqld_safe "$@" fi if [ "$1" = 'mysqld_safe' …
Während ich einige CTF-Herausforderungen online löste, stieß ich auf eine Situation, in der ich einen Server bruteforce musste. Dies ist der Code, den ich geschrieben habe: #!/bin/bash for i in {0..9}{0..9}{0..9}{0..9} do echo "Now trying code.." echo $i echo "a fixed string" $i | nc localhost *port here* >> /tmp/me/dump.txt …
Ich weiß, dass ich beide als erste Zeile von Skripten verwenden kann, um die gewünschte Shell aufzurufen. Wäre #!/bin/shzu empfehlen, wenn Kompatibilität mit allen Unix-Systemen unabdingbar ist? In meinem Fall interessieren mich nur Ubuntu (Debian) und OSX. Könnte ich #!/bin/bashdavon ausgehen, dass es auf beiden Systemen funktioniert? Würde dies auch …
Lesen Sie zu dieser Frage: Wie kann ich in zsh alle Umgebungsvariablen auflisten? Ich habe mich gefragt, wie ich alle Shell-Variablen auflisten kann. Gilt die Unterscheidung zwischen Shell- Variablen und Umgebungsvariablen auch für andere Shells als zsh? Ich interessiere mich hauptsächlich für Bash und Zsh, aber es wäre toll zu …
Das Learning Bash Book erwähnt, dass eine Subshell nur Umgebungsvariablen und Dateideskriptoren usw. erbt und keine Variablen, die nicht exportiert werden: $ var=15 $ (echo $var) 15 $ ./file # this file include the same command echo $var $ Wie ich weiß, erstellt die Shell zwei Subshells für ()und für …
Es gibt viele Möglichkeiten, Zeichen in einer Variablen zu ersetzen. Der kürzeste Weg, den ich herausgefunden habe, ist trbisher: OUTPUT=a\'b\"c\`d_123and_a_lot_more OUTPUT=$(echo "$OUTPUT"|tr -d "'\`\"") echo $OUTPUT Gibt es einen schnelleren Weg? Und dann ist dies unter Angabe sicher für Angebote wie ', "und `selbst?
Das Problem ist, dass beim Ausführen von watch der folgende shFehler auftritt: sh: 1: func1: not found Hier ist der Code: #!/bin/bash func1(){ echo $1 } export -f func1 watch func1
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.