Sponsored Content
Top Forums Shell Programming and Scripting Bash tcsh Script runs in terminal but not folder Post 302963224 by sea on Saturday 26th of December 2015 06:06:14 AM
Old 12-26-2015
With #!/bin/bash aka shebang, you declare the script to be bash.
By starting the very same script with tcsh ./script.sh, you overwrite the bash-shebang to be tcsh.

So if the script fails beeing executed by itself, with a bash-shebang, it is not bash.
Changing the shebang to #!/bin/tcsh should do the trick.

This way, if executable flag is set, it can also be executed like:
Code:
./script.sh
/path/to/script.sh

For most scripts you'll find either none or .sh file extension.
.sh in this scenario usualy just means 'shell', and that script should contain a shebang, otherwise it simply assumes to be the same shell as the current environment shell.

Know that many, if not all, distro's have /bin/sh symlinked to their specific default shell.
Which in most cases could be either: bash, dash, ksh or zsh.
So going with #!/bin/sh can result in unexpected behaviour when the script is shared.

Scripts without a shebang, should then have their shell/-name as extension, eg: .bash .dash .tcsh
When sharing, most forums to not support 'variant' file extensions to attach, and limit scripts to ".sh", which therefor requires scripts to have the proper shebang set.

My 2 cents, hth
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Reading output from terminal back into bash script

How can I get a bash script to wait and read and count $i messages that a running program (drbl clonezilla) sends to the console (terminal) and only then move on to the next line in the script when the count is matched (the next line is the last line of the script and is a reboot)? The script... (0 Replies)
Discussion started by: dp123
0 Replies

2. UNIX for Dummies Questions & Answers

Bash script to rename all files within a folder...

Hi. I don't have any experience with making scripts in bash. I need a simple script to rename all files in a folder to the format file1.avi, file2.avi, file3.avi, and so on..... Please note that the original files have different filenames and different extensions. But they all need to be... (2 Replies)
Discussion started by: dranzer
2 Replies

3. Shell Programming and Scripting

Run bash script without terminal

How can I make a bash script that keeps on running after I have closed the terminal? Or a script that runs without having the terminal window open? (1 Reply)
Discussion started by: locoroco
1 Replies

4. Shell Programming and Scripting

Need to run a bash script that logs on as a non-root user and runs script as root

So I have a script that runs as a non-root user, lets say the username is 'xymon' . This script needs to log on to a remote system as a non-root user also and call up a bash script that runs another bash script as root. in short: user xymon on system A needs to run a file as root user and have... (2 Replies)
Discussion started by: damang111
2 Replies

5. Shell Programming and Scripting

Bash script for new file in ftp folder

Hello, I'm trying to make a bash script that send me e-mail if there is any new file in my ftp folder. cat inotify.sh #!/bin/sh /usr/bin/inotifywait -e create \ -mrq /home/mrowcp | while read line; do echo -n "$line " >> /var/log/inotify.log echo `date | cut -d " " -f1-4` >>... (3 Replies)
Discussion started by: mrowcp
3 Replies

6. Programming

CGI Perl script to execute bash script- unable to create folder

Hi I have a bash script which takes parameters sh /tmp/gdg.sh -b BASE-NAME -n 1 -s /source/data -p /dest/data/archive -m ARC gdg.sh will scan the /source/data and will move the contents to /dest/data/archive after passing through some filters. Its working superb from bash I have... (0 Replies)
Discussion started by: rakeshkumar
0 Replies

7. UNIX for Dummies Questions & Answers

Bash script that runs permanently

Hello,Geeks How i can run my script permanently. once i run my script it should be working always. like installation. for example if i run one command once in bash script. it must be permanently run in my linux machine.. Thanks in Advance (2 Replies)
Discussion started by: dhanda2601
2 Replies

8. Shell Programming and Scripting

How to change Linux Terminal environment variable in a perl or bash script?

Hi, I meet an problem that it cannot change Terminal environment variable in a perl or bash script. This change can only exist and become effective in script lifetime. But I want to make this change take effect in current opened Terminal. In our view, the thought seems to be impossible, As... (9 Replies)
Discussion started by: weichanghe2000
9 Replies

9. Shell Programming and Scripting

[Help] Bash script that runs in the background and checks for mails...

Hello! I have got a homework. The bash script runs in the background and checks the user's mailbox and when the user gets a new mail a popup window appears with some text and information about the sender (from who and when).I have no idea how to start, any help would be appreciated! Thank you:) (1 Reply)
Discussion started by: capo2ndfret
1 Replies

10. Shell Programming and Scripting

Simply Bash Script to Confirm that there are 2 Files in Same Folder

Im looking for 2 Files -> *.WAV and *.wav with find . -name 'unavail.wav' -o -name 'unavail.WAV' I need to list the Folders that contains these 2 Files? Thx in advance (13 Replies)
Discussion started by: valdez
13 Replies
SURFRAW-UPDATE-PATH(1)					User Contributed Perl Documentation				    SURFRAW-UPDATE-PATH(1)

NAME
surfraw-update-path - updates PATH in shell config files SYNOPSIS
surfraw-update-path [-add] [-remove] [-check] [-sys] [-all] [-help] [-shell=SHELL] DESCRIPTION
surfraw-update-path adds the surfraw elvi directory (/usr/lib/surfraw) to your PATH in your shell's config file. Currently it supports bash, sh, csh, tcsh, ash, dash, ksh, pdksh, zsh, rc, and es Don't forget to login again or source your login files for it to take effect. OPTIONS
-check Checks to see if the surfraw config code is present. This is the default. -add Adds the surfraw config code. -remove Removes the surfraw config code -sys Updates the system-wide shell config instead of the user. Must be done as root. -shell=SHELL Selects the shell to configure. Defaults to the value of the $SHELL environment variable. Currently supported shells are: sh, ash, bash, dash, csh, tcsh, ksh, pdksh, zsh, rc, and es. -all Attempts to configure the startup files for all known shells -help Gives a usage message RETURN VALUE
-check returns 0 if the surfraw code is present in the file, 1 if it is not found, or 2 on error. All other options return 0 on success, or 2 on error. ENVIRONMENT
SHELL Used to determine which shell to configure, if -shell is not given. HOME Used to find users config files. ENV Used by posix-compliant shells to specify a startup rc file. ZDOTDIR Used to find user config files for zsh. If not set, defaults to HOME. SEE ALSO
surfraw(1), sh(1), ash(1), bash(1), dash(1), csh(1), tcsh(1), ksh(1), pdksh(1), zsh(1), rc(1), es(1) AUTHOR
Ian Beckwith <ianb@erislabs.net> perl v5.12.4 2011-07-12 SURFRAW-UPDATE-PATH(1)
All times are GMT -4. The time now is 07:32 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy