Hi kleine Frage für die Shellprogrammierer unter Euch. Ich müsste in der /etc/profile für bestimmte User bestimmte Kommandos ausführen. Da aber die User smbuser1 bis 9 heissen wollte ich die if-Anweisung etwas verkürzen und smbuser[0-9] abfragen. Leider klappt das nicht so, wie ich da gerne hätte. Wie muss man das denn syntaktisch richtig schreiben ? if [ "$LOGNAME" != "smbuser[0-9]" ]; then .... fi ^^^^^^^^^^^^^^^^^^ -- SET THE CONTROLS FOR THE HEART OF THE SUN Jens
"J.Strohschnitter"
Da aber die User smbuser1 bis 9 heissen wollte ich die if-Anweisung etwas verkürzen und smbuser[0-9] abfragen. Leider klappt das nicht so, wie ich da gerne hätte. Wie muss man das denn syntaktisch richtig schreiben ?
if [ "$LOGNAME" != "smbuser[0-9]" ]; then .... fi ^^^^^^^^^^^^^^^^^^
case $LOGNAME in smbuser* ) code code ;; * ) # fall-thru (default) ;; esac Jürgen -- Dr.rer.nat. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe Tel: +49(721) 9204871 Fax: +49(721) 24874 juergen@informatik-vollmer.de,vollmer@cocolab.de,Juergen.Vollmer@acm.org www.informatik-vollmer.de
* J. Strohschnitter schrieb am 19.Nov.2002:
kleine Frage für die Shellprogrammierer unter Euch. Ich müsste in der /etc/profile für bestimmte User bestimmte Kommandos ausführen.
Warum machst Du es nicht in deren ~/.bashrc? Wenn Du ihnen nicht vertraust, muß Du auch Sorge dafür tragen, daß sie die Änderungen in der /etc/profile nicht rückgängig machen.
Da aber die User smbuser1 bis 9 heissen wollte ich die if-Anweisung etwas verkürzen und smbuser[0-9] abfragen. Leider klappt das nicht so, wie ich da gerne hätte. Wie muss man das denn syntaktisch richtig schreiben ?
Die bash kann keine regexp.
if [ "$LOGNAME" != "smbuser[0-9]" ]; then .... fi ^^^^^^^^^^^^^^^^^^
if [ "$LOGNAME" != smbuser{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} ] then ... fi Bernd -- Was ist quoten? Quoten ist das Zitieren aus einer mail, der man antwortet. Und wie macht man es richtig? Zitate werden mit "> " gekennzeichnet. Nicht mehr als nötig zitieren. Vor den Abschnitten das Zitat, auf das man sich bezieht, mit einer Zeile Abstand oben und unten. |Zufallssignatur 12
Hallo, On Tue, 19 Nov 2002, Bernd Brodesser wrote:
* J. Strohschnitter schrieb am 19.Nov.2002:
if [ "$LOGNAME" != "smbuser[0-9]" ]; then .... fi ^^^^^^^^^^^^^^^^^^
if [ "$LOGNAME" != smbuser{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} ] then ... fi
$ for x in smbuser1 smbuser2 smbuser3; do if test "$x" = smbuser{1,2,3}; then echo "ok"; fi; done test: too many arguments test: too many arguments test: too many arguments -dnh --
Vollmonde erscheinen Periodisch alle 28 Tage. erst jetzt wird mir die Bedeutung des "blutroten Mondes" richtig bewußt. [Harald Stowasser und Cheatah in dag°]
Am Dienstag, 19. November 2002 12:31 schrieb David Haller:
Hallo,
On Tue, 19 Nov 2002, Bernd Brodesser wrote:
* J. Strohschnitter schrieb am 19.Nov.2002:
if [ "$LOGNAME" != "smbuser[0-9]" ]; then .... fi ^^^^^^^^^^^^^^^^^^
if [ "$LOGNAME" != smbuser{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} ] then ... fi
$ for x in smbuser1 smbuser2 smbuser3; do if test "$x" = smbuser{1,2,3}; then echo "ok"; fi; done test: too many arguments test: too many arguments test: too many arguments
-dnh
hi danke an alle - habe das ganz über die case-anweisung gelöst. -- SET THE CONTROLS FOR THE HEART OF THE SUN Jens
Hallo, On Tue, 19 Nov 2002, J.Strohschnitter wrote:
kleine Frage für die Shellprogrammierer unter Euch. Ich müsste in der /etc/profile für bestimmte User bestimmte Kommandos ausführen. Da aber die User smbuser1 bis 9 heissen wollte ich die if-Anweisung etwas verkürzen und smbuser[0-9] abfragen. Leider klappt das nicht so, wie ich da gerne hätte. Wie muss man das denn syntaktisch richtig schreiben ?
if [ "$LOGNAME" != "smbuser[0-9]" ]; then .... fi ^^^^^^^^^^^^^^^^^^
if echo "$LOGNAME" | grep -q 'smbuser[0-9]$'; then ... Falls du auch z.B. smbuser12... willst, dann aendere das in: if echo "$LOGNAME" | grep -q 'smbuser[0-9]*'; then ... -dnh -- You haven't lived until you've seen the households Great Hunter Panther^wtomcat cowering in terror under a bush after being caught in an instant thunderstorm on a sunny day. -- Lionel, about his owner, in the Monastery
On Die, 19 Nov 2002 at 12:18 (+0100), David Haller wrote:
On Tue, 19 Nov 2002, J.Strohschnitter wrote:
kleine Frage für die Shellprogrammierer unter Euch. Ich müsste in der /etc/profile für bestimmte User bestimmte Kommandos ausführen. Da aber die User smbuser1 bis 9 heissen wollte ich die if-Anweisung etwas verkürzen und smbuser[0-9] abfragen. Leider klappt das nicht so, wie ich da gerne hätte. Wie muss man das denn syntaktisch richtig schreiben ?
if [ "$LOGNAME" != "smbuser[0-9]" ]; then .... fi ^^^^^^^^^^^^^^^^^^
if echo "$LOGNAME" | grep -q 'smbuser[0-9]$'; then ...
Falls du auch z.B. smbuser12... willst, dann aendere das in:
if echo "$LOGNAME" | grep -q 'smbuser[0-9]*'; then ...
Das ist extrem ungenau (findet auch smbuser, xyzsmbuserschnuffel, brökssmbuser11blub, ...), besser: ... grep -q '^smbuser[0-9][0-9]*$' ... Jan
participants (5)
-
B.Brodesser@t-online.de
-
David Haller
-
J.Strohschnitter
-
Jan.Trippler@t-online.de
-
Jürgen Vollmer