Domenico Pasella wrote: >> Scripts can be sourced with positional parameters, so I don't see what >> is wrong with the code at line 336 of checkroot.sh, which you quote. >> Can you explain? > > I was sleeping. :)
No you weren't. I just discovered that providing positional parameters to sourced scripts is not supported in dash. Do you have /bin/sh linked to dash? ========= $ cat /tmp/s echo arg0 "$0" arg1 "$1" $ cat /tmp/t #!/bin/bash . /tmp/s foo $ /tmp/t arg0 /tmp/t arg1 foo $ vi /tmp/t # and s/bash/dash $ cat /tmp/t #!/bin/dash . /tmp/s foo $ /tmp/t arg0 /tmp/t arg1 ========== > Wed Nov 23 16:19:13 2005: Done checking root file system. > Wed Nov 23 16:19:13 2005: Usage: /etc/rcS.d/S10checkroot.sh start|stop > Wed Nov 23 16:19:13 2005: Cleaning up ifupdown...done. Doh, I forgot to fix the Usage line in mountvirtfs. Please apply this patch to your mountvirtfs: - echo "Usage: $0 start|stop" >&2 + echo "Usage: mountvirtfs start|stop" >&2 Assuming that you are using dash and that this is the reason you are seeing the message, the next question is whether dash or checkroot.sh is at fault. That is, _should_ dash support sourcing with arguments? Sourcing is performed using the dot command which, like the colon command, is a "Special Built-in Utility"[0]. The Open Group Base Specification Issue 6 does not say[1] that the dot can be given more than one argument. Hence, I conclude that the bug is in checkroot.sh: a bashism. [0]http://www.opengroup.org/onlinepubs/009695399/idx/sbi.html [1]http://www.opengroup.org/onlinepubs/009695399/utilities/dot.html I will fix this by removing the 'start' argument of the dot command you quoted and I will make mountvirtfs default to start if $1 is empty. Here is a diff for you to try. $ svn diff Index: checkroot.sh =================================================================== --- checkroot.sh (revision 213) +++ checkroot.sh (working copy) @@ -335,7 +335,7 @@ [ "$roottype" != none ] && mount -f -o $rootopts -t $roottype $fstabroot / [ -n "$devfs" ] && mount -f $devfs - . /etc/init.d/mountvirtfs start + . /etc/init.d/mountvirtfs fi # Index: mountvirtfs =================================================================== --- mountvirtfs (revision 214) +++ mountvirtfs (working copy) @@ -237,7 +237,7 @@ } case "$1" in - start) + start|"") do_start ;; restart|reload|force-reload) @@ -248,7 +248,7 @@ # No-op ;; *) - echo "Usage: mountvirtfs start|stop" >&2 + echo "Usage: mountvirtfs [start|stop]" >&2 exit 3 ;; esac -- Thomas -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]