Als «bash» getaggte Fragen

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.



1
Unerwartetes Ergebnis von a = "$ @"
Ich kämpfe mit dieser Situation: $ set -- 1 2 3 $ a="$@" $ echo "$a" 1 2 3 Was ich unerwartet finde, ist die Aufgabe selbst. man bashsagt dies über die "$@"Erweiterung: Wenn die Erweiterung in doppelten Anführungszeichen erfolgt, wird jeder Parameter zu einem separaten Wort erweitert. Das sollte …


3
Warum unterscheidet sich der Exit-Status beim Ausführen von `systemctl start? systemctl is-active` und `systemctl is-active` getrennt?
Die folgende Sequenz gibt mir den Rückgabewert des ersten Befehls, nicht des zweiten, wie ich erwartet hätte (unabhängig davon, ob ich den ersten Befehl in einer Subshell ausführe): sudo systemctl start x; sudo systemctl is-active --quiet x; echo $?; (sudo systemctl start x); sudo systemctl is-active --quiet x; echo $?; …


4
Wie kann ich nur in Unterverzeichnissen chmod?
Gegeben der folgende Verzeichnisbaum: . ├── d1 │ └── workspace ├── d2 │ └── workspace ├── d3 │ └── workspace ├── d4 │ └── workspace └── d5 └── workspace Ich muss die Berechtigungen für alle workspaceVerzeichnisse wie folgt festlegen : chmod -R 774 d1 / Arbeitsbereich chmod -R 774 d2 …

1
Der Bash-Export ignoriert set -ex
Ich bin heute auf ein seltsames Verhalten gestoßen: #!/bin/bash set -ex export a=$(cat foo) echo "It's a living thing" b=$(cat foo) echo "This won't make it" Dies hört nicht auf cat foo, obwohl fooes nicht existiert. Aber ohne den Export schlägt es fehl. Warum?

5
Wie könnte ich zweimal in einem Durchgang grep?
Gibt es eine Möglichkeit, grepzweimal in der Datei zu vermeiden und die Variablen nur in einem Durchgang zu füllen? Die Datei ist klein, es ist also keine große Sache, dass ich mich nur gefragt habe, ob ich es in einem Durchgang schaffen könnte FIRST_NAME=$(grep "$customer_id" customer-info|cut -f5 -d,) LAST_NAME=$(grep "$customer_id" …

2
Listen Sie alle Programme auf, die von einem Shell-Skript verwendet werden
Ich versuche eine Methode zu finden, um alle Programme aufzulisten, die ein Skript verwendet, wenn es ausgeführt wird, ohne es tatsächlich auszuführen. Ich habe diese schnellen und schmutzigen Oneliner geschrieben: # fill an array with all the useful words except variables, options, brackets, quotes readarray -t list <<<$( grep -v …
7 bash  shell  audit 

3
Das C-System ("bash") ignoriert stdin
Ich habe eine Dateieingabe: $ cat input 1echo 12345 und ich habe folgendes programm 1. Version #include <stdio.h> #include <stdlib.h> int main() { system("/bin/bash -i"); return 0; } Wenn ich es jetzt laufen lasse, $ gcc -o program program.c $ ./program < input bash: line 1: 1echo: command not found …
7 linux  bash  c 

3
Zurückkehren '.' oder 'Quelle'
Ich habe versehentlich die falsche Umgebung aus einem Skript bezogen. Gibt es eine Möglichkeit, die Quelle zu entfernen oder mit anderen Worten, sie zurückzusetzen und die vorherige Umgebung wiederherzustellen? Die offensichtliche Antwort ist natürlich, von einer Clean-Shell-Sitzung zu beginnen, aber ich bin gespannt, ob es eine andere Lösung gibt. Update: …

2
Zeichenfolgenvergleich mit Ganzzahl in [[Test
Ich habe mir hier eine Diskussion zwischen Kusalananda und xhienne angesehen , in der erwähnt [ "" -ge 2 ]wird , dass es sich nicht um einen gültigen Test handelt, der einen Fehler in bash --posixund anderen POSIX-kompatiblen Shells erzeugt. bash-4.3$ [ "" -gt 10 ] bash: [: : integer …

1
Anweisungsblöcke Mechanismus in Shell-Skripten?
In Beginning Linux Programming book. Es gibt einen Abschnitt über den Anweisungsblock . In diesem Teil sieht die Erklärung wie folgt aus. Anweisungsblöcke Wenn Sie mehrere Anweisungen an einer Stelle verwenden möchten, an der nur eine zulässig ist, z. B. in einer UND- oder ODER-Liste, können Sie dies tun, indem …

1
Problem mit der Interpretation des Alias ​​in Befehlsargumenten
Ich habe folgenden Alias: alias mv='mv -i' alias git='LANG=en_US \git ' Wenn ich dann einen git mvBefehl mache, wird der wie mvfolgt interpretiert mv -i: $ git mv a b error: unknown switch `i' Ich möchte, dass der Alias ​​nur angewendet wird, wenn es sich um einen Bash-Befehl handelt Versionen: …
7 bash  alias 

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.