Hallo. Ich bin mir nicht sicher, ob das hier her gehört, oder eher unter Programmierung. Ich würde gerne ein Shellscript erstellen, das ein paar Systemweite Änderungen vornimmt. Leider kenne ich nur einen Bruchteil der Befehle. Folgende Punkte müssten abgearbeitet werden. 1) Finde Datei XYZ und ändere Zeile Wallpaper in XXX. 2) Finde Verzeichnis XYZ und lösche es 3) Erstelle Textdatei XYZ 4) Hänge an Datei XYZ Text an 5) Finde Datei XYZ und wenn CD-ROM vorkommt erzeuge Link auf XYZ Leider sehen meine bisher erstellen Scripte eher wie die bashhistory aus, als wie wirkliche Scripte. Ich muss nämlich auf mehreren Arbeitsplätzen KDE nach einem bestimmten Muster ändern. Würde ich das mit Hand machen, würde das einige Zeit in Anspruch nehmen. Wenn es ein deutsche Howto zu der ganzen Sache gibt, wäre es super, wenn ihr mir sagen könnte, wo ich es finde. Marcus Habermehl
Moin,
* Marcus Habermehl
Folgende Punkte müssten abgearbeitet werden.
1) Finde Datei XYZ und ändere Zeile Wallpaper in XXX. 2) Finde Verzeichnis XYZ und lösche es 3) Erstelle Textdatei XYZ 4) Hänge an Datei XYZ Text an 5) Finde Datei XYZ und wenn CD-ROM vorkommt erzeuge Link auf XYZ
Leider sehen meine bisher erstellen Scripte eher wie die bashhistory aus, als wie wirkliche Scripte.
Das oben läßt sich auch mit einer Bashhistory machen, da müßten nur die entsprechenden Befehle drinstehen. Grundsätzlich findest Du eine Datei mit find(1): find $suchbeginn -name $dateiname Wenn Du jetzt auch noch etwas mit dieser Datei machen willst, brauchst Du die exec-Direktive: find $suchbeginn -name $dateiname -exec $befehl {} \; Das Ändern der Zeile machst Du mit sed(1). Vielleicht so? sed 's/^Wallpaper.*$/XXX/' Das Erstellen machst Du mit touch(1). Das Anhängen machst Du mit echo(1): echo "Text" >> $datei Auch das letzte klappt ohne Shellskript (ungetestet): find $suchbeginn -name XYZ -exec grep 'CD-ROM' {} \; -exec ln XYZ \ $andereDatei
Wenn es ein deutsche Howto zu der ganzen Sache gibt, wäre es super, wenn ihr mir sagen könnte, wo ich es finde.
Es gibt wohl ein Howto für die Programmierung der Bash, aber das hat eher was mit find(1) und sed(1) zu tun. Vor allem find(1) ist extrem nützlich. Thorsten -- Denn ein Tyrann ist nicht, wenn die Masse nicht geduldig stillhält. - Kurt Tucholsky
* Marcus Habermehl schrieb am 27.Apr.2003:
Folgende Punkte müssten abgearbeitet werden.
1) Finde Datei XYZ und ändere Zeile Wallpaper in XXX.
Die Datei findest Du mit find und die Zeile änderst Du mit sed. Bitte ließ Dir man find und man sed durch. Etwa so, aber bitte nicht einfach abpinnen, sondern versuchen zu verstehen. Und ich habe es nicht überprüft, könnte ein Fehler drin sein: TEMP=/tmp/`date +%Ymd`$$`mktemp XXXXXX`.skriptname || exit 1 NAME=`find /Pfad/wo/Du/anfaengst/zu/suchen -type f -name XYZ` for n in $NAME do sed 's/Wallpaper/XXX/g' $n > $TEMP mv $TEMP $n done Bitte auf richtige ' bzw. ` achten. Gibt Probleme, wenn im Dateiname ein Leerzeichen oder Zeilenumbruch vorkommt.
2) Finde Verzeichnis XYZ und lösche es
Das kanst Du mit find machen.
3) Erstelle Textdatei XYZ
Irgend ein Texteditor, zB vi oder emacs oder was auch immer.
4) Hänge an Datei XYZ Text an
echo Text | cat XYZ - > UVW
5) Finde Datei XYZ und wenn CD-ROM vorkommt erzeuge Link auf XYZ
Wider mit find. Was meinst Du mit CD-ROM vorkommen? Im Text? Das sucht man mit grep. Ein Link macht man mit ln
Leider sehen meine bisher erstellen Scripte eher wie die bashhistory aus, als wie wirkliche Scripte.
Alle Scripte sehen wie bashhistories aus, da man alles was man in einem Skript schreibt auch auf der Kommandozeile schreiben kann.
Ich muss nämlich auf mehreren Arbeitsplätzen KDE nach einem bestimmten Muster ändern.
Was meinst Du damit? Das Wort KDE ändern? Dafür gibt es sed. Oder willst Du eine KDE entfernen?
Würde ich das mit Hand machen, würde das einige Zeit in Anspruch nehmen.
Wenn es ein deutsche Howto zu der ganzen Sache gibt, wäre es super, wenn ihr mir sagen könnte, wo ich es finde.
man find man sed man grep Wenn Du konkreter wirst, kann Dir auch ehr geholfen werden. Bernd -- ACK = ACKnowledge = Zustimmung | NAC = No ACknowledge = keine Zustimmung DAU = Dümmster Anzunehmender User | LOL = Laughing Out Loud = Lautes Lachen IIRC = If I Remember Correctly = Falls ich mich richtig erinnere OT = Off Topic = Am Thema (der Liste) vorbei |Zufallssignatur 11
Wider mit find. Was meinst Du mit CD-ROM vorkommen? Im Text? Das sucht man mit grep. Ein Link macht man mit ln
Mit CD-ROM meine ich zum Beispiel in der /etc/fstab (/mnt/cdrom)
Alle Scripte sehen wie bashhistories aus, da man alles was man in einem Skript schreibt auch auf der Kommandozeile schreiben kann.
Na ja, wenn ich mir die Scripte anschaue, die zum Beispiel in /etc/init.d sind. Die sehen nicht ganz wie eine History aus.
Was meinst Du damit? Das Wort KDE ändern? Dafür gibt es sed. Oder willst Du eine KDE entfernen?
Nein. Ich soll bei zwei Umsteigern Linux installieren. Und da ich bei der Einen immer nur Stöhnen gehört habe "Wieso ist Das da, wieso ist Das nicht dort?" will ich KDE etwas mehr an die Win98-Oberfläche anpassen. Aber bitte nicht gleich schlagen. ;-) Von dem Script bin ich aber jetzt doch abgekommen. Habe mir überlegt, bevor ich das Ganze abtippe, bin ich mit der grafischen Oberlfläche schneller. Trotzdem danke. Wenn ich mal wieder X zerschiese, kann ich die Befehle bestimmt gebrauchen. Marcus Habermehl
Es wäre nett, wenn Du dabei schreiben würdest, daß Du auf meine Mail antwortest, so weiß jeder, von wem die Zitate stammen. Dafür gibt es extra eine Atributzeile, mußt Du nur nicht löschen. * Marcus Habermehl schrieb am 27.Apr.2003:
Wider mit find. Was meinst Du mit CD-ROM vorkommen? Im Text? Das sucht man mit grep. Ein Link macht man mit ln
Mit CD-ROM meine ich zum Beispiel in der /etc/fstab (/mnt/cdrom)
Du hast leider gelöscht, was Du damit willst. Mit grep cdrom /etc/fstab findest Du diese Zeile, aber was willst Du damit? Wenn Du mounten willst, so reicht ein mount /mnt/cdrom Denn genau dafür ist /etc/fstab da.
Alle Scripte sehen wie bashhistories aus, da man alles was man in einem Skript schreibt auch auf der Kommandozeile schreiben kann.
Na ja, wenn ich mir die Scripte anschaue, die zum Beispiel in /etc/init.d sind. Die sehen nicht ganz wie eine History aus.
Weil Du nicht die Befehle eingibst. Du kannst alles was in /etc/init.d steht auch auf der Befehlszeile eingeben, dann sieht Dein bash_history entsprechend aus. Allerdings ist es sicherlich nicht sonderlich Sinnvoll Kommentare über die Befehlszeile einzugeben. Möglich ist es aber. Bernd -- Alle meine Signaturen sind rein zufällig und haben nichts mit dem Text oder dem Schreiber zu tun, dem ich antworte. Falls irgendwelche Unrichtigkeiten dabei sein sollten, so bedauere ich das. Es wäre nett, wenn Du mich benachrichtigen würdest. |Zufallssignatur 0
Hallo, On Sun, 27 Apr 2003, Bernd Brodesser wrote:
* Marcus Habermehl schrieb am 27.Apr.2003:
3) Erstelle Textdatei XYZ
Irgend ein Texteditor, zB vi oder emacs oder was auch immer.
touch(1)
4) Hänge an Datei XYZ Text an
echo Text | cat XYZ - > UVW
echo "Text" >> XYZ -dnh -- The social dynamics of the net are a direct consequence of the fact that nobody has yet developed a Remote Strangulation Protocol. -- Larry Wall
Am Sonntag, 27. April 2003 14:07 schrieb Marcus Habermehl:
Ich bin mir nicht sicher, ob das hier her gehört, oder eher unter Programmierung. Ich würde gerne ein Shellscript erstellen, das ein paar Systemweite Änderungen vornimmt. Leider kenne ich nur einen Bruchteil der Befehle. [...]
Hi Markus, vielleicht ist Dir damit geholfen? http://www.linux-ag.de/linux/LHB/index.html lg, Andreas.
participants (5)
-
Andreas Scherer
-
B.Brodesser@t-online.de
-
David Haller
-
Marcus Habermehl
-
Thorsten Haude