The way I have done this in the past (using ksu rather than su) is to: #!/bin/bash # if [ "$UID" -ne 0 ] then portion of script to run as root else ksu $0 $* if [ "$?" -ne 0 ] then echo "ksu failed!" exit 1 else portion of script to run as non-root fi fi # exit
-Keith. On Apr 29, 2014, at 2:20 PM, ToddAndMargo <toddandma...@zoho.com> wrote: > Hi All, > > I have a bash script that need to be run as root. > In the script, I check to see if it is running as > root and flag the user to run appropriately. > > Is there a way to use "su" to prompt for the password > and continue the script if successful? (I would test for > $? after the prompt.) > > Currently "su" will just open a new shell as root. > > I can run a command inside "su", but what about the > other 200 lines of code? :'( > > Many thanks, > -T > > > -- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Computers are like air conditioners. > They malfunction when you open windows > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~