Script inclusive Variablen.

D

diggerdance

Grünschnabel
Hallo Community,
Ich lerne gerade Java und arbeite seit kurzem auf einem Linux Rechner. Ich moechte gerne Befehle im Terminal abkuerzen dh mehrere Befehle durch einen Befehl im Terminal ausfuehren. Sei also folgendes der code, den ich bis jetzt habe:

------------

#!/bin/sh --

inPath() {
for i in ${PATH//:/ };
do [ -x "$i/$1" ] && return 0; done; }

wlan=wlan0;
a=fdown $wlan;
b=iwconfig $wlan mode monitor;
c=ifup $wlan;

for x in $a $b $c;
do inPath "$x" || exit 1; done

--------
ich hab das gefuehl, da stimmt was mit der Variablendeklaration nicht. Koennt ihr mir helfen damit ich es mit chmod aufuehrbar machen kann?

Vielen Dank im Voraus
diggerDance
 
Was genau willst du da jetzt tun?

Java oder Bash?

Und die Ausführbarkeit hat erstmal nichts mit dem Inhalt tun, du kannst auch ein MP3-File ausführbar machen.
 
@sinn3r wenn es mit #!/bin/sh anfängt würde ich fast annehmen, dass es ein sh skript sein soll.


Bitte verwende in Zukunft
Code:
 tags. Das grenzt sourcecode mehr vom Text ab.

Wenn du wirklich ein sh skript, statt einem bash skript machen willst solltest du [code]export a=b
verwenden. (das hab ich aber nur geschrieben, dass du gleich siehst wie viel schöner code tags sind)

Die Strichpunkte solltest du weglassen, wenn du nicht mehrere Befehle in einer Zeile schreiben willst, was du nicht solltest.

Und bitte schreib nicht mehrere Befehle in einer Zeile.

Wenn du das script ausführbar machen willst schreib
Code:
chmod +x SCRIPT
, wobei SCRIPT der Pfad zu deinem Skript ist.
 
@sinn3r wenn es mit #!/bin/sh anfängt würde ich fast annehmen, dass es ein sh skript sein soll.
Wenn aber explizit Java erwähnt wird, darf man doch nachfragen?

Die Shebang ist mir natürlich auch aufgefallen. ;)
 
Erstmal danke für eure Antworten und "Sorry" für die fehlende Präzision und schlechte Formatierung .. ich arbeite daran. Also Java habe ich nur erwähnt um mein mageres Vorwissen zu schildern :) Es geht primär um ein sh-script unter ubuntu 11.10.

Der Befehl:
Code:
chmod +x SCRIPT

funktioniert .. Ich hab dummerweise - statt + geschrieben -> mybad

Was ich machen nun machen möchte:

Ich möchte beispielsweise die folgenden Terminal-Befehle
nacheinander über einen einzigen Sudo-Befehl ausführen.

Code:
sudo ifconfig wlan0 down
sudo iwconfig wlan0 mode monitor
sudo ifconfig wlan0 up

Wie würde man so ein Script schreiben wenn man wlan0 als Variable ansieht, die man vorher ab Tastatur ausliest?
 
Code:
#!/bin/sh
INTERFACE=$1
ifconfig $INTERACE down
iwconfig $INTERFACE mode monitor
ifconfig $INTERFACE up

Aufruf als Root (z.B. via 'sudo') mit einem Parameter. 'sudo einskript.sh wlan0'

Was $1 für eine besondere Variable in der Bash ist (und das es noch viele mehr davon gibt), verrät dir ein Grundlagentutorial deiner Wahl. ;)

Lässt sich natürlich noch mit tausend Raffinessen und Abfragen verfeinern, da führen viele Wege nach Rom.
 
sehr nice! vielen dank! habs mir schwieriger vorgestellt XD
 

Ähnliche Themen

Verschlüsseltes Backup-Script mit rsync

Variable mit 'tr' ändern

Crontab und Scripts - Problem

Prblem mit zeilenweises auslesen von Datei und schreiben nach mysql

Autostart von X mit google-chrome durch systemd

Zurück
Oben