Q. I know #!/bin/bash is shebang line. But, I noticed a few shell script shebang line ends with a single dash ( #!/bin/bash – ) or double dash ( #!/bin/bash — ). Can you explains me purpose of such shebang line?
A. A – or — signals the end of options and disables further option processing i.e. bash will not accept any of its option. Any arguments after the — are treated as filenames and arguments. An argument of – is equivalent to –. This is done to improve script security. Some user may perform setuid based script root spoofing. To avoid interpreter spoofing you need to add — to #!/bin/bash. This is rare but possible attack.
🐧 12 comments so far... add one ↓
Category | List of Unix and Linux commands |
---|---|
File Management | cat |
Firewall | Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04 |
Network Utilities | dig • host • ip • nmap |
OpenVPN | CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04 |
Package Manager | apk • apt |
Processes Management | bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time |
Searching | grep • whereis • which |
User Information | groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w |
WireGuard VPN | Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04 |
man bash:
” — A — signals the end of options and disables further option processing. Any argu ments after the — are treated as filenames and arguments. An argument of – is equivalent to –.
“
Hello,
Please, any possible book i could study more on shell programming? Please, this is the second mail i am sending and i haven’t got a reply.
> henry ‘any possible book i could study more on shell programming?’:
Richard Stones, Neil Matthew – Beginning Linux Programming
ISBN-13: 9780764543739
12,20$
http://www.amazon.com/gp/product/0764543733
“Advanced Bash-Scripting Guide” is a great book available at the Linux Documentation Project’s website – http://tldp.org/guides.html
Mastering UNIX Shell Scripting: Books by Randal K. Michael
Oreilly Classic Shell Scripting
Henry, try “Linux Command” site at:
http://www.linuxcommand.org/
The author is in process of writing a book, but imho, if the goal is to teach bash, the site gets an A+. He walks through a real example. It’s good clean code. You’ll learn to do it right.
Then I would look at “The Linux Documentation Project” at:
http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html
> DJ “http://www.linuxcommand.org/”
That seems to be a real good source. :)
This page is * DEAD * Does not exist anymore.
when i loggin into redhat as an user . i got a prompt like this -bash-3.1$
how i can change that into normal user prompt………..
pls
thank you
you can set whatever prompt you like with
set PS1=”[newprompt]”; export PS1
but you’ll have to set the prompt every time you log in, unless you can edit the hidden bash profile that should be in your home dir
#!/bin/bash
SERVERIP=192.168.23.18
LOGFILE=/home/user/backup.log
rsync -avz –delete –numeric-ids \
–exclude=”.Trash” \
–exclude=”Downloads” \
$HOME $SERVERIP:backups/user/ 1>$LOGFILE
what does this mean?
Do none of these people know how to use Google ffs?