![]() |
|
|
|
|
|||||||
| UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !! |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| To call/execute a shell script from a shell script | konark | UNIX for Dummies Questions & Answers | 1 | 10-26-2007 02:16 PM |
| How to pass a parameter from one Shell-script to another Shell-script | subodhbansal | Shell Programming and Scripting | 2 | 09-22-2007 02:19 AM |
| How to Run a shell script from Perl script in Parent shell? | hifake | Shell Programming and Scripting | 16 | 08-28-2007 05:42 PM |
| Accessing variables of one shell script in another shell script | rsendhilmani | Shell Programming and Scripting | 1 | 04-30-2007 05:43 AM |
| Have a shell script call another shell script and exit | heprox | Shell Programming and Scripting | 2 | 11-20-2006 04:17 AM |
|
|
Submit Tools | LinkBack | Thread Tools | Display Modes |
|
|||
|
cd in shell script
I have a shell script (bash shell) that just has a cd command, but when it runs, the directory does not change. How can I get this to work?
__________________
[url=http://www.spetnik.com/images/storybanner.php][img]http://www.spetnik.com/images/storybanner.php?s=i[/img][/url] |
| Forum Sponsor | ||
|
|
|
||||
|
A shell script is executed in a sub process. If you use a cd command, that sub-process will change directories. But when the script finishes, the parent process resumes. A sub process cannot affect its parent's current directory.
|
|
||||
|
i should have remembered that from watching my ignite command kick off from cron... It executes a sh to run the make_tape_recovery from my mkignite.sh script.
It is best to use the full path in shell scripts imho...
__________________
My brain is your brain |
|
|||
|
the shell script just has the following:
cd /home/spetnik I remember back in school on sh shell with SCO Unix V that I was able to make a similar script. Surely, there must be a way, no? -Aaron
__________________
[url=http://www.spetnik.com/images/storybanner.php][img]http://www.spetnik.com/images/storybanner.php?s=i[/img][/url] |
|
||||
|
Ygor is correct. You use . to prevent a "fork" from occuring when you execute the script. Keep in mind, if you just want the script to cd to the directory and then perform som functions, that will work within the script just fine.
Consider the following script: cd /tmp pwd If you run the script, it echos out /tmp as the path - thus any operations that follow in the script will take place in /tmp. When the shell terminaties, you will not be in /tmp, but in your starting directory. If you want the script to leave the running shell in that directory, use: . script Cheers, Keith |
||||
| Google UNIX.COM |
| Tags |
| linux |
| Thread Tools | |
| Display Modes | |
|
|
|
The 50 most popular UNIX and Linux searches.
Google Search Cloud for The UNIX and Linux Forums
|
| "inappropriate ioctl for device" 421 service not available, remote server has closed connection autosys awk trim bash eval bash exec bash for loop boot: cannot open kernel/sparcv9/unix close_wait command copy/move folder in unix curses.h cut command in unix dead.letter find grep find null character in a unix file grep multiple lines grep or grep recursive inaddr_any inappropriate ioctl for device logrotate.conf lynx javascript mailx attachment mget mtime ping port remove first character from string in k shell replace space by comma , perl script scp recursive segmentation fault(coredump) sftp batch sftp script snoop unix stale nfs file handle syn_sent tar exclude unix unix .profile unix com unix date command unix forum unix forums unix interview questions unix mtime unix simulator unix.com vi select all vi tab size vi+substitute+end+of+line+character while loop within while loop shell script |