Calling sh from csh
Polytropon
freebsd at edvax.de
Sun Apr 5 20:26:08 UTC 2020
On Sun, 5 Apr 2020 21:48:37 +0200, Jos Chrispijn wrote:
> Can you tell me how I could find out if a shell script runs on csh or sh
> and then execute it from within the right shell?
If the shell script declares the required shell in the fist
line, for example
#!/bin/sh
you can simply execute it (given that it has +x execution
permission as required) by
% ./scriptname
and the correct interpreter will be used.
You can also require bash (in case you're using extended
non-sh functionality) by using
#!/usr/local/bin/bash
Similarly, executable scripts can call awk, perl or any
other interpreter using the #! mechanism - you simply call
the script by name, the correct interpreter will execute
the script.
In some cases, the filename extension .sh identifies a
shell script as suitable for the sh (or sometimes bash)
shell, so manually calling
% sh scriptname.sh
or
% bash scriptname.sh
will always work, no matter if a valid #! line is present.
In case no #! is present and the filename has no extension,
it's required to examine the actual content of the script
in order to run the required interpreter. :-)
--
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
More information about the freebsd-questions
mailing list