Zitat von
zagadka
...
Ich möchte von vielen Skripten (>10), die sich immer nur in einem Parameter unterscheiden auf ein Skript runterkommen. Und diesen Parameter möchte ich an das einzige Skript übergeben.
...
at akzeptiert keine Parameter. Zumindest habe ich in der man-Page keinen Weg gefunden.
Der folgende Trick ist vielleicht nicht allzu elegant, sollte aber Dein Problem lösen (nicht ausgetestet):
1. Du legst für jeden möglichen Parameter einen Link an:
Code:
for p in par1 par2 par3; do
ln /home/eins/test.sh "/home/eins/test ${p}.sh"
done
Damit hast Du in /home/eins für jeden möglichen Aufrufparameter ein eigenes Script (mit einem Leerzeichen im Namen), also in diesem Beispiel:
/home/eins/test.sh # das Original
/home/eins/test par1.sh
/home/eins/test par2.sh
/home/eins/test par3.sh
2. Im Shell-Script test.sh extrahierst Du aus Deinem Scriptnamen den Parameter:
Code:
# aus dem Scriptnamen den Parameter extrahieren
PAR=`basename "$0" .sh | cut -f2 -d" "`
3. Jetzt kannst Du im Script mit $PAR arbeiten
4. Deine at-Jobs startest Du mit:
at -f "/home/eins/test par1.sh" now
Das Schöne daran ist, dass die Links keinen Platz verbrauchen und dass Du beim Editieren mit einem vernünftigen Editor tatsächlich auch die Links mit aktualisierst. Wenn Dein Editor Hardlinks kaputtmacht, dann nimm stattdessen Symbolic Links (ln -s).
Jan
Lesezeichen