2016-06-06 19 views
0

Ich lerne Bash, und ich wollte eine Reihe von Befehlen automatisieren, die ich oft verwende. In diesem Fall ist es Macchanger und Neustart des Netzwerk-Managers.Bash-Skript hängt, bis Enter gedrückt wird. Zeigt nur neue MAC-Adresse, kein Meldungsfeld

#!/bin/bash 

#Automated macchanger script 

wlanDOWN=$(ifconfig wlan0 down) 

change_mac=$(macchanger -r wlan0) 

wlanUP=$(ifconfig wlan0 up) 

verify=$(macchanger --show wlan0) 

network_connect=$(sudo service network-manager restart) 

confirmation=$(dialog --msgbox "Change complete" 10 30) 

printf "%s\n" "$wlanDOWN" 
printf "%s\n" "$change_mac" 
printf "%s\n" "$wlanUP" 
printf "%s\n" "$verify" 

printf "%s\n" "To return to permanent mac address type 'macchanger --permanent <interface name>' " 

printf "%s\n" "$network_connect" 

printf "%s\n" "$confirmation" 

Wenn ich ausführen dieses Skript mit

./hide_me 

es hängt nur, bis ich ein zweites Mal drücken Sie die Eingabetaste, dann zeigt es gerade die neue MAC-Adresse und zeigt nicht mein Meldungsfeld. Irgendwelche Zeiger? Danke Freunde.

+0

'während [kill-0" $ pid "]' falsch ist, hast du wahrscheinlich gemeint "während kill-0" $ pid "'. Sie sollten ein vollständiges Beispiel veröffentlichen, wenn Sie weitere Hilfe benötigen. – Adrian

+0

Ja, tut mir leid. Ich dachte, ich hätte den Code eingefügt, bevor ich ihn eingereicht habe. Es ist jetzt da. : D – IRGeekSauce

+0

Ich habe die Klammern entfernt, und jetzt bekomme ich: Zeile 32: kill: '': keine pid oder gültige Job-Spezifikation – IRGeekSauce

Antwort

0

Das Dialogfeld wurde entfernt und es wird ausgeführt, was es tun soll.

#!/bin/bash 

#Automated macchanger script 

wlanDOWN=$(ifconfig wlan0 down) 

change_mac=$(macchanger -r wlan0) 

wlanUP=$(ifconfig wlan0 up) 

verify=$(macchanger --show wlan0) 

network_connect=$(sudo service network-manager restart) 

confirmation=$(dialog --msgbox "Change complete" 10 30) 

printf "%s\n" "$wlanDOWN" 
printf "%s\n" "$change_mac" 
printf "%s\n" "$wlanUP" 
printf "%s\n" "$verify" 

printf "%s\n" "To return to permanent mac address type 'macchanger --permanent <interface name>' " 

printf "%s\n" "$network_connect" 

Ich habe heute etwas gelernt: K.I.S.S. ;-)