05-19-2009
Exclamation point in Bash
Here is a script using egrep that extracts the last word in each line:
egrep -o " [a-zA-Z'-]+[,:.!';?]*$" File.txt > Results.txt
If it is placed in a file with the requisite header:
#!/bin/bash
it works perfectly.
If on the other hand, one attempts it from the command line, one gets the following error:
-bash: !': event not found
The problem is the exclamation point in the regexp.
I have tried numerous ways to get it to work from the command line and failed: using single quotes, escaping the !, etc.
Nothing works.
Now, you may ask, if it works from a file, why insist on doing it from the command line? You're right. I shouldn't. And my research indicates that this problem is particularly annoying in bash and that people simply recommend using a different shell.
But can it be solved?
Thanks in advance...
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi,
I am trying to compare 2 floating point numbers 0.8 and 0.15 using bash and get the largest of the two. Can anyone advise. (2 Replies)
Discussion started by: borncrazy
2 Replies
2. Shell Programming and Scripting
Hi, guys,
today, I have copied a simple script which runs correctly on a computer to another one. But, the latter informs me:
Floating point exception!
@ ./command_module a b c
where command_module is the module compiled by myself.
So, I have fixed it by following steps:
1.... (5 Replies)
Discussion started by: mapleleaves
5 Replies
3. Shell Programming and Scripting
Dear all,
I have the following question. Let's say that I have the following script
#!/bin/bash
value=0.4987865
a=` printf "%6.2f" $value `
b=`echo $value + $value | bc -l`
echo $a
echo $b
exit
And the exit is:
0,00
.9975730
Thus, the problem is that the printf order does not... (2 Replies)
Discussion started by: josegr
2 Replies
4. Shell Programming and Scripting
Hello, I have an output like
Interface Chipset Driver wlan0 Intel 4965/5xxx iwlagn - and I want to take only the 'wlan0' string. This can be done by
a="Interface Chipset Driver wlan0 Intel 4965/5xxx iwlagn - "
b=${a:25:6}
echo $bThe thing is that wlan0 can be something else, like eth0 or... (2 Replies)
Discussion started by: hakermania
2 Replies
5. Shell Programming and Scripting
Hey again,
I have a basic regex that tests if a number is a float.
Thank you. (5 Replies)
Discussion started by: whyte_rhyno
5 Replies
6. UNIX for Advanced & Expert Users
What is the deal with explanation point in bash? I thought only dollar sign ($), the back-tick (`) and the backslash (\) were special in double quotes. Can someone please explain what is going on here? Why do I have to use single quotes or backslash the "!"?
$ vlc "/media/Part... (4 Replies)
Discussion started by: cokedude
4 Replies
7. Shell Programming and Scripting
Hello Everyone,
I am currently working on a script to calculate optimal tcp window size
the formula that I am following is
2 x (bandwith speed /8 * Round Trip Time ) = x
This is what I have so far
#!/bin/bash
echo "Enter connection speed" << Get the speed of the Connection from... (3 Replies)
Discussion started by: bmfmancini
3 Replies
8. Shell Programming and Scripting
Heyas
I have a script (vhs - video handler script, using ffmpeg) to encode videos.
It also encodes a dvd, but until now just non-copy-protected ones, so i've tried to add/implement a vobcopy wrapper to be used by my script.
At first it looked quite fine, but when changing from the first VOB... (9 Replies)
Discussion started by: sea
9 Replies
9. Shell Programming and Scripting
Hello,
I have often found bash to be difficult when it comes to floating point numbers. I have data with rows of tab delimited floating point numbers. I need to find the smallest number in each row that is not 0.0. Numbers can be negative and they do not come in any particular order for a given... (9 Replies)
Discussion started by: LMHmedchem
9 Replies
10. Shell Programming and Scripting
I have the following code snippet in bash
if ]; then
minm=`echo "$diff" | bc`
fi
It works well for most of the cases. However lets say diff is -0.17 and minm is -0.0017. In such a case the comparison seems to fail. Is the correct way to compare a mixture of positive and... (12 Replies)
Discussion started by: ngabrani
12 Replies
RBASH(1) General Commands Manual RBASH(1)
NAME
rbash - restricted bash, see bash(1)
RESTRICTED SHELL
If bash is started with the name rbash, or the -r option is supplied at invocation, the shell becomes restricted. A restricted shell is
used to set up an environment more controlled than the standard shell. It behaves identically to bash with the exception that the follow-
ing are disallowed or not performed:
o changing directories with cd
o setting or unsetting the values of SHELL, PATH, ENV, or BASH_ENV
o specifying command names containing /
o specifying a file name containing a / as an argument to the . builtin command
o specifying a filename containing a slash as an argument to the -p option to the hash builtin command
o importing function definitions from the shell environment at startup
o parsing the value of SHELLOPTS from the shell environment at startup
o redirecting output using the >, >|, <>, >&, &>, and >> redirection operators
o using the exec builtin command to replace the shell with another command
o adding or deleting builtin commands with the -f and -d options to the enable builtin command
o using the enable builtin command to enable disabled shell builtins
o specifying the -p option to the command builtin command
o turning off restricted mode with set +r or set +o restricted.
These restrictions are enforced after any startup files are read.
When a command that is found to be a shell script is executed, rbash turns off any restrictions in the shell spawned to execute the script.
SEE ALSO
bash(1)
GNU Bash-4.0 2004 Apr 20 RBASH(1)