Sponsored Content
Full Discussion: Exclamation point in Bash
Top Forums Shell Programming and Scripting Exclamation point in Bash Post 302317551 by Enobarbus37 on Tuesday 19th of May 2009 09:46:51 AM
Old 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

Floating point numeric comparisions in bash

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

BASH: floating point exception

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

floating point not recognized by printf in bash

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

Bash take word after specific point and till next space?

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

[BASH] Regex for floating point number

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

explanation point bash

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

Bash Floating point math with bc

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

[BASH] Floating point exception

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

Bash script to print the smallest floating point number in a row that is not 0

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

Comparison of floating point numbers in bash

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
LIBBASH(7)							  libbash Manual							LIBBASH(7)

NAME
libbash -- A bash shared libraries package. DESCRIPTION
libbash is a package that enables bash dynamic-like shared libraries. Actually its a tool for managing bash scripts whose functions you may want to load and use in scripts of your own. It contains a 'dynamic loader' for the shared libraries ( ldbash(1)), a configuration tool (ldbashconfig(8)), and some libraries. Using ldbash(1) you are able to load loadable bash libraries, such as getopts(1) and hashstash(1). A bash shared library that can be loaded using ldbash(1) must answer 4 requirments: 1. It must be installed in $LIBBASH_PREFIX/lib/bash (default is /usr/lib/bash). 2. It must contain a line that begins with '#EXPORT='. That line will contain (after the '=') a list of functions that the library exports. I.e. all the function that will be usable after loading that library will be listed in that line. 3. It must contain a line that begins with '#REQUIRE='. That line will contain (after the '=') a list of bash libraries that are required for our library. I.e. every bash library that is in use in our bash library must be listed there. 4. The library must be listed (For more information, see ldbashconfig(8)). Basic guidelines for writing library of your own: 1. Be aware, that your library will be actually sourced. So, basically, it should contain (i.e define) only functions. 2. Try to declare all variables intended for internal use as local. 3. Global variables and functions that are intended for internal use (i.e are not defined in '#EXPORT=') should begin with: __<library_name>_ For example, internal function myfoosort of hashstash library should be named as __hashstash_myfoosort This helps to avoid conflicts in global name space when using libraries that come from different vendors. 4. See html manual for full version of this guide. AUTHORS
Hai Zaar <haizaar@haizaar.com> Gil Ran <ril@ran4.net> SEE ALSO
ldbash(1), ldbashconfig(8), getopts(1), hashstash(1) colors(1) messages(1) urlcoding(1) locks(1) Linux Epoch Linux
All times are GMT -4. The time now is 04:57 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy