GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Shell-Script-Wrapper, um das Ausführen von Befehlen ohne Argumente zu verhindern?

Es gibt ein Programm, das ich verwende, sagen wir xyz , das hat unerwünschte Auswirkungen, wenn ich den Befehl ohne Argumente ausführe. Ich möchte also verhindern, dass ich versehentlich xyz ausführe Befehl ohne Argumente, aber Ausführung mit Argumenten zulassen.

Wie kann ich ein Shell-Skript schreiben, damit beim Aufruf von xyz ohne Argumente wird eine Fehlermeldung ausgegeben und ansonsten alle Argumente an xyz übergeben Programm?

Akzeptierte Antwort:

Sie können die spezielle Variable $#:

überprüfen
if [ $# -eq 0 ]; then
  echo "No arguments provided!"
  exit 1
fi
/usr/bin/xyz "[email protected]"

Fügen Sie dann einen Alias ​​zu Ihrem ~/.bashrc hinzu;

alias xyz="/path/to/script.sh"

Jetzt jedes Mal, wenn Sie xyz ausführen , wird stattdessen der Alias ​​gestartet. Dadurch wird das Skript aufgerufen, das überprüft, ob Sie Argumente haben, und nur den echten xyz startet Befehl, wenn Sie dies tun. Ändern Sie natürlich /usr/bin/xyz wie auch immer der vollständige Pfad des Befehls lautet.


Linux
  1. Ist es möglich, ein Bash-Shell-Skript mit einem anderen Befehlszeilenprogramm interagieren zu lassen?

  2. Bearbeiten Sie das Shell-Skript, während es ausgeführt wird

  3. Shell-Skript parallel ausführen

  4. Wie speichert man einen Befehl in einer Variablen in einem Shell-Skript?

  5. Linux-Befehl, um zu prüfen, ob ein Shell-Skript ausgeführt wird oder nicht

So führen Sie einen Linux-Shell-Befehl / ein Skript im Hintergrund aus

So führen Sie einen Shell-Befehl mit Python aus

So speichern Sie einen Linux-Befehl als Variable im Shell-Skript

Wie führe ich einen Befehl in einem Shell-Skript aus?

Wie liest man Befehlszeilenargumente in Shell-Skripten?

Automatisieren Sie die mysql_secure_installation mit dem echo-Befehl über ein Shell-Skript