Keine der drei Methoden erweitert sich auf das Benutzerverzeichnis. Nur die Verwendung von "$HOME/photo dir" ist erfolgreich.
Nur Methode 1 erweitert "~/" auf das Benutzerverzeichnis und fügt dann den angegebenen Verzeichnisnamen mit Leerzeichen hinzu.
Nur Methode 2 erweitert "~/" auf das Benutzerverzeichnis und fügt dann den angegebenen Verzeichnisnamen mit Leerzeichen hinzu.
Nur Methode 3 erweitert "~/" auf das Benutzerverzeichnis und fügt dann den angegebenen Verzeichnisnamen mit Leerzeichen hinzu.
Q2. Wenn script.sh im aktuellen Verzeichnis ausgeführt wird, schlägt es fehl. Warum?
$ ls -1
Beach photo1.jpg
Photo1.jpg
Photo2.jpg
Script.sh
$ cat script.sh
for i in $(ls *.jpg); do mv $i${i}.bak
done
ls: Kann nicht auf nonexistentfile zugreifen: Datei oder Verzeichnis nicht gefunden
Die for-Schleife trennt an Wortgrenzen und Beach photo1.jpg hat ein Leerzeichen darin.
Der mv-Befehl schlägt fehl, weil die geschweifte Klammer ein Sonderzeichen in Bash ist und nicht in den Dateinamen verwendet werden kann.
Das Ausführen von script.sh wird erfolgreich sein, da der ls-Befehl eine Liste der Dateien im aktuellen Verzeichnis erstellt und for-Schleifen durch diese Liste laufen und Dateien mit der Erweiterung .bak umbenennen.
Q3. Welche Syntax würden Sie verwenden, um einen Kopierbefehl in einer Unter-Shell auszuführen?
( Befehl )
sh Befehl
{ Befehl; }
(( Befehl ))
Referenz. Unter-Shell sind eine Möglichkeit für einen Programmierer, die Ausgabe eines Programms oder Skripts zu erfassen (normalerweise mit der Absicht, sie zu verarbeiten). Befehle, die in einer Unter-Shell ausgeführt werden sollen, sind in einzelne Klammern eingeschlossen und werden von einem Dollarzeichen gefolgt: DIRCONTENTS=$(ls -l) echo ${DIRCONTENTS}
Q4. Was wäre die Ausgabe dieses Befehls mit "awk"?
Referenz. AWK ist eine Programmiersprache, die für die Verarbeitung von textbasierten Daten entwickelt wurde, entweder in Dateien oder Datenströmen oder unter Verwendung von Shell-Pipelines. Mit anderen Worten, Sie können awk mit Shell-Skripts kombinieren oder direkt an einer Shell-Eingabeaufforderung verwenden.
Q5. Der folgende Befehl durchsucht das Wurzeldateisystem nach Dateien mit dem Namen "finance.db". Welche Informationen werden dabei an /dev/null gesendet?
Die Namen von Dateien, die nicht mit finance.db übereinstimmen
Informationen, die an den Standardfehler gesendet werden, zum Beispiel Fehler, die der find-Befehl während seiner Ausführung anzeigt
Die Namen von Dateien, die mit finance.db übereinstimmen
Informationen, die an die Standardausgabe gesendet werden, d. h. den Pfad zu den von find-Befehl gefundenen Dateien
Referenz. Syntax zum Umleiten von stderr (Standardfehler) in eine Datei: Befehl 2> Fehler.txt.
Q6. Um leere Zeilen dauerhaft aus einer Datei namens textfile zu entfernen, welchen Befehl könnten Sie verwenden?
sed -i '/^$/d' textfile
sed '/^$/d' textfile
cat textfile | sed '/^$/d
sed -i 's/^$//' textfile
Referenz
sed : sed ist ein Stream-Editor. Ein Stream-Editor wird verwendet, um grundlegende Texttransformationen auf einem Eingabestream durchzuführen.
-i[SUFFIX] : Diese Option gibt an, dass Dateien vor Ort bearbeitet werden sollen.
'/^$/d' : Das regex befindet sich zwischen den //. ^ ist der Anfang der Zeile, $ ist das Ende der Zeile. ^$ bedeutet, dass zwischen Start und Ende nichts steht.
d : Löschen Sie den Musterbereich; starten Sie sofort den nächsten Zyklus.
Achtung, dieses obige Beispiel funktioniert nicht auf einem Mac-Terminal aufgrund verschiedener UNIX-Versionen. Es gibt eine Möglichkeit, es auf einem Mac zu verwenden, indem Sie eine zusätzliche Flagge -e hinzufügen oder sogar nur -- (gefunden auf StackOverflow): sed -i -e '/^$/d' textfile.txt
Q7. Angenommen, Benutzer1 existiert, was wäre das Ergebnis dieses Befehls?
Es würde den Benutzernamen, die UID und das Home-Verzeichnis von Benutzer1 durch Doppelpunkte getrennt anzeigen.
Es würde die UID, GID und das Home-Verzeichnis von Benutzer1 durch Bindestriche getrennt ausdrucken.
Es würde die UID, Kommentar und das Home-Verzeichnis von Benutzer1 durch Bindestriche getrennt ausdrucken.
Es würde den Benutzernamen, die UID und das Home-Verzeichnis von Benutzer1 durch Bindestriche getrennt anzeigen.
Referenz. Traditionell wird die Datei /etc/passwd verwendet, um alle registrierten Benutzer zu verfolgen, die Zugriff auf ein System haben. Die /etc/passwd-Datei ist eine durch Doppelpunkte getrennte Datei, die folgende Informationen enthält: 1-Benutzername, 2-Passwort, 3-Benutzer-ID (UID), 4-Gruppen-ID (GID), 5-Benutzer-ID-Info (GECOS), 6-Home-Verzeichnis, 7-Befehl/Shell
Q8. Was passiert, wenn Sie in einem Bash-Skript "set -e" verwenden?
Es veranlasst Bash, zu beenden, wenn eine Funktion oder eine Unter-Shell einen anderen Statuscode als Null zurückgibt.
Es veranlasst Bash, zu beenden, wenn eine Bedingung einen anderen Statuscode als Null zurückgibt.
Es veranlasst Bash, zu beenden, wenn lokale, deklarierte oder typisierte Zuweisungen einen anderen Statuscode als Null zurückgeben.
Es veranlasst Bash, zu beenden, wenn ein Befehl, eine Befehlsliste, ein Compound-Befehl oder potenziell eine Pipeline einen anderen Statuscode als Null zurückgibt.
Referenz. Die Option set -e weist bash an, sofort zu beenden, wenn ein Befehl [1] einen anderen Statuscode als Null hat. Sie möchten dies nicht für Ihre Befehlszeilenumgebung einstellen, aber in einem Skript ist es enorm hilfreich. In allen weit verbreiteten allgemeinen Programmiersprachen führt ein nicht behandelter Laufzeitfehler - ob das nun eine ausgelöste Ausnahme in Java ist oder ein Segmentierungsfehler in C oder ein Syntaxfehler in Python - sofort zur Beendigung der Programmausführung; nachfolgende Zeilen werden nicht ausgeführt.
Q9. Das _ -Schlüsselwort pausiert das Skript, um Eingaben vom Standardinput zu erhalten.
erhalten
Argument
lesen
Eingang
Q10. Wenn die Datei.sql SQL-Anweisungen zum Ausführen enthält, was wird in der Datei.txt sein?
mysql < file.sql > file.txt
Eine Kopie des Inhalts der Datei.sql
Ein Fehler, der darauf hinweist, dass dies eine ungültige Syntax ist
Die Fehlerausgabe des MySQL-Befehls
Die nicht-fehlerhafte Ausgabe des MySQL-Befehls
Hinweis: Überprüfen Sie die untenstehende Frage nach einer Variante.
Q11. Was ist der Unterschied zwischen der Ausgabe auf dem Bildschirm und dem Inhalt von out.txt?
mysql < file.sql > out.txt
Die Ausgabe auf dem Bildschirm ist identisch mit out.txt
Es wird keine Ausgabe auf dem Bildschirm angezeigt, da sie in out.txt umgeleitet wird.
Die Ausgabe auf dem Bildschirm ist identisch mit out.txt plus Zeilennummern.
Die Datei out.txt enthält STDERR und STDOUT wird auf dem Bildschirm angezeigt.
Hinweis: Überprüfen Sie die obige Frage nach einer Variante.
Q12. Wie beeinflusst das SUID oder setuid ausführbare Befehle?
Wenn der Befehl Dateien erstellt, werden sie vom Gruppenbesitzer des Befehls erstellt.
Das SUID-Bit ermöglicht es jedem, den Befehl auszuführen, unabhängig davon, welche anderen Berechtigungen festgelegt sind.
Wenn der Befehl ausgeführt wird, werden seine Ausführungsrechte auf den Benutzerbesitzer des Befehls erhöht.
Wenn der Befehl ausgeführt wird, werden seine Ausführungsrechte auf den Gruppenbesitzer des Befehls erhöht.
Referenz. Die Linux- und Unix-Zugriffsrechtsflags setuid und setgid (kurz für set user identity und set group identity) [1] ermöglichen Benutzern das Ausführen eines ausführbaren Programms mit den Dateisystemberechtigungen des Eigentümers oder der Gruppe des ausführbaren Programms und das Ändern des Verhaltens in Verzeichnissen.
Q13. Um Text aus der ersten Spalte der Datei namens textfile zu extrahieren, welchen Befehl würden Sie verwenden?
cat {$1,textfile}
cat textfile | awk [print $1]
cat textfile | awk '{print $1}'
awk textfile {print $1}
Q14. Welche Tastenkombination ruft die Bash-Verlaufssuche wie unten gezeigt auf?
(reverse-i-search)`':
Esc + R
Strg + H
Strg + R
Alt + R
Hinweis: Auf dem Mac wird es bck-i-search: anstelle von (reverse-i-search) anzeigen.
Q15. Welcher arithmetische Ausdruck liefert die präziseste Antwort?
var=$( expr 10 / 8 )
(( var= 10 /8 ))
var=$(( 10 / 8 ))
var=$(echo 'scale=2; 10 / 8' | bc)
Referenz. Der Befehl bc wird für den Befehlszeilenrechner verwendet. Er ähnelt einem einfachen Taschenrechner, mit dem grundlegende mathematische Berechnungen durchgeführt werden können. Die Division mit einer 2-stelligen Genauigkeit wird an bc übergeben, ausgewertet und der Variablen zugewiesen.
Q16. Was ist das Ergebnis dieses Skripts?
txt=Penguins
[[ $txt =~ [a-z]{8} ]]; echo $?
0, was 'wahr' darstellt, weil die Variable "txt" acht Buchstaben enthält
0, was 'wahr' darstellt, weil alle Pinguine lieben!
1, was 'falsch' darstellt, weil die Variable "txt" länger als acht Zeichen ist
1, was 'falsch' darstellt, weil die Variable "txt" keine acht Kleinbuchstaben zwischen a und z enthält
Q17. Wie würden Sie Ihren Bash-Shell-Prompt wie folgt ändern?
Referenz
Was passiert hier nach dem Zitieren der POSIX-Shell-Spezifikation: ${parameter#[Wort]}. Entfernen des kleinsten Präfixmusters. Das Wort wird erweitert, um ein Muster zu erzeugen. Die Parametererweiterung ergibt dann Parameter, wobei der kleinste Teil des Präfixes, der durch das Muster übereinstimmt, gelöscht wird.
Zum Beispiel erweitert ${VAR#?} auf den Wert von $VAR und löscht das erste Zeichen. Und ${VAR#\*/html} erweitert, um alle Zeichen bis zum und einschließlich des /html-Textes einzuschließen, der aus der Variable gelöscht wird, was die Ausgabe von /website.com/html/ ergibt.
Q19. Wenn Sie zur Texteingabe am Standardinput aufgefordert werden, können Sie dem Befehl mit welcher Tastenkombination mitteilen, dass Sie mit der Texteingabe fertig sind?
Strg + A (Windows) oder Befehl + A (Mac)
Strg + E (Windows) oder Befehl + E (Mac)
Strg + D (Windows) oder Befehl + D (Mac)
Strg + Z (Windows) oder Befehl + Z (Mac)
Q20. Damit ein Bash-Skript wie ein Betriebssystembefehl ausgeführt werden kann, muss es mit einer Shebang-Zeile beginnen. Wie sieht das aus?
#!/usr/bin/env bash
~/usr/bin/env bash
'$!/usr/bin/env bash
#/usr/bin/env bash
Q21. Welche Zeile eines Bash-Skripts hat wahrscheinlich die untenstehende Ausgabe erzeugt?
The date is: Sun Mar 24 12:30:06 CST 2019!
echo "Das Datum ist: !"
echo "Das Datum ist: date!"
echo "Das Datum ist: (date)!"
echo "Das Datum ist: $(date)!"
Q22. Angenommen, Ihr aktuelles Arbeitsverzeichnis ist Ihr Home-Verzeichnis. Wie könnten Sie das Skript demo.sh ausführen, das sich in Ihrem Home-Verzeichnis befindet? Finden Sie drei richtige Antworten.
A. /home/demo.sh
B. ./demo.sh
C. ~/demo.sh
D. bash /home/demo.sh
E. bash demo.sh
B, C, E
A, B, C
C, D, E
B, D, E
Q23. Wie könnten Sie eine Liste aller .html-Dateien in Ihrem Verzeichnisbaum erhalten?
find . -type html
find . -name *.html
find *.html
find . -name \*.html -print
Die zweite scheint in Ordnung zu sein, aber sie wird das \* erweitern, wenn es eine .html-Datei in Ihrem Arbeitsverzeichnis gibt.
Q24. Was wäre in out.txt?
cat < in.txt > out.txt
Die Ausgabe von der Befehlszeile. Standardmäßig kommt STDIN von der Tastatur.
Nichts, weil Sie nicht von einer Datei (in.txt) zu einer anderen Datei (out.txt) umleiten können. Sie können nur von einem Befehl zu einer Datei umleiten.
Es wären die Inhalte von in.txt.
Nichts. Die Umleitung wird eine neue leere Datei erstellen, aber es wird keine Ausgabe des cat-Befehls zum Umleiten geben.
Q25. Was macht diese Bash-Anweisung?
(( $a == $b ))
echo $?
Sie durchläuft die Werte von $a und $b.
Sie testet, ob die Werte der Variablen $a und $b gleich sind.
Sie gibt $b zurück, wenn es größer als $a ist.
Sie gibt $a zurück, wenn es größer als $b ist.
Q26. Was verwendest du in einer case-Anweisung, um Bash mitzuteilen, dass du einen bestimmten Test abgeschlossen hast?
; ;
: :
done
$$
Q27. Was repräsentiert das Sternchen (*) in dieser Anweisung?
#!/usr/bin/env bashcase$numin 1)
echo"one" ;;
2)
echo"two" ;;
*)
echo"a mystery" ;;
esac
- %OPTION% ein Fall, der jeden Wert übereinstimmt, wobei eine Standardoption bereitgestellt wird, wenn nichts anderes diesen Wert abfängt
- %OPTION% ein Fall nur für das, was passiert, wenn das Sternchen-Zeichen in das Skript übergeben wird
- %OPTION% die Aktion aller anderen Fälle zusammengefasst
- %OPTION% eine Aktion, die für jede Eingabe ausgeführt wird, selbst wenn sie einer spezifizierten Bedingung entspricht
Q28. Welches Bash-Skript erstellt diese Dateien korrekt?
touch file{1+10}.txt
touch file{1-10}.txt
touch file{1..10}.txt
touch file(1..10).txt
Q29. Welche Variable würdest du überprüfen, um zu bestätigen, dass der letzte Befehl erfolgreich ausgeführt wurde?
Q37. Welche Datei ermöglicht es Ihnen, Änderungen an der Shell-Umgebung über Sitzungen hinweg zu speichern?
/etc/bash.conf
~/.profile
/etc/bashprofile
~/profile
Q38. Angesichts der auf data.txt aufgeführten Berechtigungen ist es möglich, dass Benutzer2 Lese-, Schreib- und Ausführungsberechtigungen für data.txt hat?
$ ls -l
total 0
-rwx------+ 1 user1 user1 0 Oct 27 10:54 data.txt
Nein, es ist klar, dass Benutzer2 keine Lese-, Schreib- und Ausführungsberechtigungen hat.
Ja, das + am Ende der 10-stelligen Berechtigungszeichenfolge zeigt an, dass eine Zugriffssteuerungsliste vorhanden ist. Dies könnte Benutzer2 Berechtigungen geben, die von ls -l nicht sichtbar sind.
Es ist möglich, dass SELinux Lese-, Schreib- und Ausführungsberechtigungen für Benutzer2 bereitstellt, die mit ls -l nicht sichtbar sind.
Ja, das + am Ende der 10-stelligen Berechtigungszeichenfolge zeigt an, dass ein erweitertes Attribut gesetzt ist. Dies könnte Benutzer2 Berechtigungen zum Lesen, Schreiben und Ausführen von data.txt geben.
Q39. Was erreicht dieses Skript?
#!/bin/bashdeclare -A ARRAY=([user1]=bob [user2]=ted [user3]=sally)
KEYS=(${!ARRAY[@]})
for (( i=0; $i < ${#ARRAY[@]}; i+=1 ));doecho${KEYS[$i]} - ${ARRAY[${KEYS[$i]}]}done
Es sortiert das assoziative Array namens ARRAY und speichert die Ergebnisse in einem indexierten Array namens KEYS. Dann verwendet es dieses sortierte Array, um durch das assoziative Array ARRAY zu iterieren.
Mit einer C-ähnlichen for-Schleife durchläuft es das assoziative Array namens ARRAY, indem es die Schlüssel des assoziativen Arrays verwendet und für jeden Eintrag sowohl den Schlüssel als auch die Werte ausgibt.
Es erstellt ein indexiertes Array des assoziativen Arrays namens ARRAY. Dann verwendet es eine C-ähnliche for-Schleife und das indexierte Array, um durch alle Elemente im assoziativen Array zu iterieren, wobei der Schlüssel und der Wert jedes Arrayelements unter Verwendung der Indexnummer ausgegeben werden.
Es erstellt ein assoziatives Array namens ARRAY, das es mit einer C-ähnlichen for-Schleife und den Indexnummern der Schlüssel jedes Elements im assoziativen Array durchläuft, wobei der Wert jedes Elements ausgegeben wird.
Q40. Welche Datei entspricht dem unten stehenden Code?
ls Hello[[.vertical-line.]]World
Nichts, dies ist ein ungültiges Dateimuster.
Hello.vertical-line.World
Hello[[.vertical-line.]]World
Hello|World
Q41. Was wird in out.txt sein?
ls nonexistentfile | grep "No such file" > out.txt
Keine solche Datei
ls: kann nonexistentfile nicht erreichen: Datei oder Verzeichnis nicht gefunden
Nichts, out.txt wird leer sein.
Es werden die Inhalte von nonexistentfile sein.
Q42. Um "Ist numerisch" auf dem Bildschirm auszugeben, was müsste der Benutzer eingeben, wenn er aufgefordert wird?
#!/bin/bashread -p "Enter text " var
if [[ "$var" =~ "^[0-9]+$" ]];thenecho"Is numeric"elseecho"Is not numeric"fi
Eine beliebige Zeichenfolge, die eine Ganzzahl enthält
Der Benutzer müsste die Zeichenfolge ^[0-9]]+$ eingeben. Nur so wird es wahr sein und "Ist numerisch" wird auf dem Bildschirm gedruckt, aufgrund eines falschen Syntax. Durch Einbetten des regulären Ausdrucks in doppelte Anführungszeichen schlägt jede Übereinstimmung fehl, außer dem Textstring ^[0-9]+$
Eine oder mehrere Zeichen, die nur Ganzzahlen enthalten
Aufgrund eines Syntaxfehlers ist es unmöglich, das Skript dazu zu bringen, "Ist numerisch" auszugeben.
Der Regex darf nicht in Anführungszeichen gesetzt werden, um ordnungsgemäß zu funktionieren.
Q43. Wie würden Sie das letzte Kopierkommando in Ihrer Historie finden?
history | find cp
history | grep cp
grep cp history
cp history
Q44. Um ein Skript zu schreiben, das durch die Dateien in einem Verzeichnis iteriert, welche der folgenden könnten Sie verwenden?
for i in $(ls); do ... done
for $(ls); do ... done
for i in $ls; do ... done
for $ls; do ... done
Q45. Wenn Sie einen Befehl ausführen und die Ausgabe dieses Befehls an einen anderen Befehl übergeben, welches Zeichen ermöglicht es Ihnen, diese Befehle zusammenzuschließen?
|
->
\#
@
Q46. In dem unten gezeigten Skript, was ist greeting?
Q49. Wenn es aus einem Skript verwendet wird, welcher Variable enthält den Namen des Skripts?
$0
$# // Anzahl der Positionalparameter
$$ // PID der aktuellen Shell
$@ // Array-ähnliche Struktur aller Positionalparameter
Q50. Was bedeutet das + am Ende der 10-stelligen Dateiberechtigungen auf data.txt?
ls -l
-rwx------+ 1 user1 u1 0 Oct 1 10:00 data.txt
Es gibt einen SELinux-Sicherheitskontext
Das Sticky-Bit ist gesetzt und die Datei bleibt aus Gründen der Geschwindigkeit im RAM
Es gibt eine Zugriffssteuerungsliste
Es gibt ein erweitertes Attribut wie unveränderlich festgelegt
Q51. Was macht der folgende Befehl in Bash?
cd -
Es bringt dich in das Verzeichnis, in dem du zuvor warst.
Es bringt dich in deinen Home-Ordner (egal, was dein aktuelles Arbeitsverzeichnis ist).
Es löscht das aktuelle Verzeichnis.
Es bringt dich ein Verzeichnis über deinem aktuellen Arbeitsverzeichnis.
Q52. Was macht dieser Befehl?
cat > notes -
Nimmt Text von der Standardeingabe entgegen und platziert ihn in "notes"
Erstellt "notes" und beendet
Gibt den Inhalt von "notes" aus und löscht ihn
Hängt Text an die vorhandene "notes" an
Q53. Was ist die Ausgabe von:
VAR="This old man came rolling"echo"\${VAR//man/rolling}"
This old rolling came rolling
This old man came man
This old man came rolling
This old came
Q54. Der Shell betrachtet den Inhalt einer bestimmten Variablen, um zu identifizieren, welche Programme sie ausführen kann. Wie lautet der Name dieser Variable?
$INCLUDE
$PATH
$PROGRAM
$PATHS
Q55. Welche Anweisung würdest du verwenden, um dies in der Konsole auszudrucken?
Shall we play a game? yes\no
echo "Shall we play a game? yes/\no"
echo "Shall we play a game\? yes\\no"
echo "Shall we play a game? yes\\no"
echo "Shall we play a game? yes\no"
Q56. Welche Dateien würden nach Ausführung dieser Befehle in einem Verzeichnis mit diesen sieben Dateien verbleiben?
Q57. Der folgende Code scheint zu funktionieren und gibt "8 is greater than 5" aus. Welches unerwartete Ergebnis wird Ihnen jedoch sagen, dass er nicht richtig funktioniert?
#!/bin/bashvar="8"if [ $var > 5 ]; thenecho"$var is greater than 5"fi
Es wird keine unerwarteten Ergebnisse geben. Dieses Skript funktioniert wie es ist und die Ausgabe wird "8 is greater than 5" sein.
Der Vergleich wird nicht in der Lage sein, Gleitkommazahlen zu verarbeiten, da Bash nur ganze Zahlen behandelt. Daher wird dieses Beispiel eine Fehlermeldung ausgeben, wenn der Wert von $var auf "8.8" geändert wird.
Es wird eine Datei im aktuellen Verzeichnis mit dem Namen 5 geben.
Die Variable $var ist nicht in Anführungszeichen gesetzt, was zu Wortaufteilung führt. Dieses Skript wird mit einer "erwarteten unären Operator" Nachricht fehlschlagen, wenn Sie den Wert von
Q58. Was ist das Ergebnis dieses Skripts?
Es entfernt das Verzeichnis 'foo' und die darin enthaltenen Dateien.
Es entfernt alle Dateien außer denen im aktuellen Verzeichnis.
Es entfernt alle Dateien im aktuellen Verzeichnis.
Es entfernt alle Dateien außer denen im Verzeichnis 'foo'.
Q59. Welches ist wahr?
SELinux-Richtlinien werden nach DAC-Richtlinien überprüft.
SELinux-Richtlinien werden vor DAC-Richtlinien überprüft.
SELinux-Richtlinien werden niemals nach DAC-Richtlinien überprüft.
Sie erstellt eine leere Datei namens "notes" und beendet dann.
Sie gibt den Inhalt der Datei "notes" auf dem Bildschirm aus und löscht sie dann.
Sie akzeptiert Text von der Standardeingabe und platziert ihn in der Datei "notes".
Sie fügt Text einer vorhandenen Datei mit dem Namen "notes" an.
Q82. Sie möchten Fünf-Buchstaben-Palindrome wie radar, rotor und tenet zusammenführen. Welche sed-Option sollten Sie verwenden?
sed -E -n '/^(.)(.)\3\2\1$/p'
sed -E -n '/^(.)(.)(.).\2\1$/p'
sed -E -n '/^(.)(.)(.)\2\1$/p'
sed -E -n '/^(.)(.)(.)(.)\3\2\1$/p'
Q83. Um einen Wert zur aktuellen Umgebung hinzuzufügen, welchen Befehl sollten Sie verwenden?
shell_add
save
echo
export
Q84. Was ist der Unterschied zwischen diesen beiden bedingten Ausdrücken?
[[$A==$B]]
[[$A -eq $B]]
[[$A == $B]] wird für numerische Vergleiche verwendet, während [[$a-eq $B]] für Textvergleiche verwendet wird.
[[$A==$B]] ist die neue Art des Vergleichs, bei der [[$a-eq $B]] die Legacy-Syntax ist.
sie sind gleich.
[[$A==$B]] wird für Textvergleiche verwendet, während [[$a-eq $B]] für numerische Vergleiche verwendet wird.
Q85. Was ist die Ausgabe dieses Codes?
VAR="united states"echo"${VAR^}"
vereinigte Staaten
Vereinigte Staaten
Vereinigte Staaten
VEREINIGTE STAATEN
Q86. Was würde passieren, wenn Sie das Skript unten so ausführen würden, wie es geschrieben ist?
#!/bin/bash#condition 1if [ $foo = "bar" ]; thenecho"foo is bar"fi#condition 2if [[ $foo = "bar" ]]; thenecho"foo is bar"fi
Beide Bedingungen würden scheitern.
Beide Bedingungen würden erfolgreich sein.
Bedingung 1 würde erfolgreich sein und Bedingung 2 würde scheitern.
Bedingung 1 würde scheitern und Bedingung 2 würde erfolgreich sein.
Erklärung: Das Skript wie geschrieben gibt line 3: [: =: unary operator expected aus. Definieren Sie die Variable und weisen Sie ihr den Wert foo="bar" zu, und beide Bedingungen werden erfolgreich sein.
Q87. Welche Variable enthält die Anzahl der Argumente, die einem Skript von der Befehlszeile aus übergeben wurden?
$#
$@
0
$!
Q88. In Bash-Skripting, was zeigt das "Shebang" (#!) am Anfang eines Skripts an, und warum ist es wichtig?
Es zeigt den Speicherort des Bash-Interpreters an, der zum Ausführen des Skripts verwendet werden soll.
Es gibt die erforderliche Bash-Version an, um das Skript auszuführen.
Es kennzeichnet das Skript als ausführbar.
Es hilft dem System, den Interpreter des Skripts zu identifizieren, um sicherzustellen, dass der richtige Interpreter verwendet wird.
Q89. Welche Variable enthält die Prozess-ID (PID) des Skripts, während es ausgeführt wird?
$ID
$@
$#
$$
Q90. Wenn ein Benutzer das Skript sh ohne Shebang-Zeile oder Ausführungsberechtigungen ausführen möchte, was sollte der Benutzer eingeben?
%OPTION% Eine Shebang-Zeile ist erforderlich, um ein Shell-Skript auszuführen.
%OPTION% 'bash script.sh'.
%OPTION% 'exec script.sh'.
%OPTION% AusführenAusführungsberechtigungen sind erforderlich, um ein Shell-Skript auszuführen.
Q91. Welche Auswahl ist das wahrscheinlichste Ergebnis des unten gezeigten zusammengesetzten Befehls?
cat -n animals | sort -r | head -n 5
a.
1 Ant
2 Bear
3 Cat
4 Dog
5 Elephant
b.
9 Ibex
B Hippo
7 Giraffe
6 Fox
5 Elephant
4 Dog
3 Cat
2 Bear
1 Ant10 Jaguar
c.
Jaguar
Ibex
Hippo
Giraffe
Fox
d.
9 Ibex
8 Hippo
7 Giraffe
6 Fox
5 Elephant
Q92. Welche der folgenden ist kein gültiger Bash-Variablenname?
$HOME
my_var
1var
!
Q93. In Bash, erstellen Sie einen Einzeiler-Befehl, der rekursiv alle Dateien mit der Erweiterung ".txt" in einem Verzeichnis und seinen Unterverzeichnissen findet und die Gesamtzahl der Zeilen in diesen Dateien zählt. Die Ausgabe sollte nur die Gesamtzeilenanzahl anzeigen.
Welcher der folgenden Einzeiler-Bash-Befehle erledigt diese Aufgabe?