Bash-Skript behandelt mehrere Argumente wie ein einzelnes Argument. Benötigen Sie mehrere Argumente als mehrere Argumente?

Bash-Skript behandelt mehrere Argumente wie ein einzelnes Argument. Benötigen Sie mehrere Argumente als mehrere Argumente?

Wie „sudo“ möchte ich einen Befehl erstellen, mit dem ich testen kann, ob die Webseite Dinge wie Ping, Wget, Cat usw. ausführen kann. Dieses Bash-Skript funktioniert für einzelne Befehle wie „www ./test.py“ einwandfrei, aber der Cat-Befehl benötigt andere Informationen. Wenn „www ping 192.168.XX“ eingegeben wird, wird dies zurückgegeben. (.XX ist eine lokale IP)

sudo: ping 192.168.XX: Befehl nicht gefunden

#!/bin/bash

if [ -z "$@" ]
   then
     echo "No arguments supplied"
     sudo -u www-data bash
     exit 0
else
     echo "Hello world"
     sudo -u www-data "$*"
     exit 1
fi

#sudo -u www-data bash

PS. Dies kann für jeden Benutzer im System verwendet werden. Ich habe nur www-data als Beispiel verwendet.

verwandte Informationen