09-09-2008
problems with sed and bash. Escaped characters ?
Hi, I'm writing a long script for bash (on RHEL 5.0) to execute many commands. So, my idea is to create a function to deal with error checking and logging (see ceckoutput() below). This works with all commands except for sed. I think it may be a problems with escaped characters. So I did the following tests :
bash-3.00$ bin/sed -i -e 's/\(.* \)/\1 console=ttyS0,115200/' grub.conf
bash-3.00$ echo $?
0
bash-3.00$ export cmnd="/bin/sed -i -e 's/\(.* \)/\1 console=ttyS0,115200/' grub.conf"
bash-3.00$ echo $cmnd
/bin/sed -i -e 's/\(.*\)/\1 console=ttyS0,115200/' grub.conf
bash-3.00$ $cmnd
/bin/sed: -e expression #1, char 1: unknown command: `''
I even tried changing the quotes to avoid shell substitutions:
export cmnd='/bin/sed -i -e "s%\(.*\)%\1 console=ttyS0,115200%" grub.conf'
bash-3.00$ $cmnd
/bin/sed: -e expression #1, char 1: unknown command: `"'
Any ideas why this is happening?
Would it be a good idea idea to use awk to edit the file ? if so please help me with that command.
ceckoutput (){
$1 2>&1 |tee -a $LOGFILE
if [ ${PIPESTATUS[0]} -ne 0 ];then
echo "Error in installation!! See $LOGFILE"
exit 1
fi
}
Regards,
MacL
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hello,
I am trying the following:
echo __CHANGEME__ >> testfile
VAR1="&&&"
sed -i "s|__CHANGEME__|${VAR1}|" testfile
cat testfile
This results in testfile containing
__CHANGEME____CHANGEME____CHANGEME__
Whereas I want it to result in
&&&
I understand that if
VAR1="\&\&\&"
then... (3 Replies)
Discussion started by: linuxnewbeee
3 Replies
2. Shell Programming and Scripting
Hi all,
I'm new in unix scripting and I've a problem with a script... :confused:
I need to read a file, add some fields in the records, and write them in another file, but even when I simply read and write the records, the shell interprets some caracters and the result is that the records... (5 Replies)
Discussion started by: Macs_Linux
5 Replies
3. Shell Programming and Scripting
Can someone tell me how to get the version of bash that I am running?
I'm running cygwin bash on Windows XP at home and cygwin bash on Vista at work.
Is this the version number for bash?
$ uname -a
CYGWIN_NT-6.0 US-SEA-L3BER9K 1.5.25(0.156/4/2) 2008-06-12 19:34 i686 Cygwin
This is the... (2 Replies)
Discussion started by: siegfried
2 Replies
4. Solaris
Hi, this is my first post and hope to make some contribution soon.
I'm still learning the basics of UNIX and Linux and BASH. Thus my need to understand the subject at hand. I don't have a problem with technical detail, so hit me :)
I have a script where two commands use the contents of a... (2 Replies)
Discussion started by: doublefrangelic
2 Replies
5. Shell Programming and Scripting
Hi,
I require to replace 2 items:
1. replace start of all lines in a file with ' except the first line
2. replace end of all lines in a file with '||chr( except last line
I am able to do the entire file using
sed -e s/^/\'/g -e s/$/\'\|\|chr\(/g "$file" > newfile.txt
but am not yet able... (0 Replies)
Discussion started by: Chella15
0 Replies
6. UNIX for Dummies Questions & Answers
Hi,
I require to replace 2 items:
1. replace start of all lines in a file with ' except the first line
2. replace end of all lines in a file with '||chr( except last line
I am able to do the entire file using
sed -e s/^/\'/g -e s/$/\'\|\|chr\(/g "$file" > newfile.txt
but am not yet... (3 Replies)
Discussion started by: Chella15
3 Replies
7. Shell Programming and Scripting
So, I have a series of ASCII files, all named something like mrkxxxxz.tmp (say, mrk1001z.tmp, mrk1002z.tmp, mrk1003z.tmp,...) -- these are .tmp files created by a large simulation program, and each different .tmp file represents a different parameter space used in the simulation). The simulations... (2 Replies)
Discussion started by: johnny_canucl
2 Replies
8. Shell Programming and Scripting
Heyas
Figured me had a 'typo' in tui-conf-set, i went to fix it.
Now, i also figured, it might be nice to have tui-conf-set report (to console, not only exit code) wether it could save the variable to the file or not.
This said, I appended this code: (the tui-title and tui-echo lines are... (3 Replies)
Discussion started by: sea
3 Replies
9. Shell Programming and Scripting
Hi
I keep getting the following error
sed: -e expression #1, char 32: unterminated `s' command
sed: -e expression #1, char 35: unterminated `s' command
sed: -e expression #1, char 35: unterminated `s' command
whenever I use the following bash script
#! /bin/bash... (2 Replies)
Discussion started by: spbr
2 Replies
10. Shell Programming and Scripting
I have this fastq file:
@M04961:22:000000000-B5VGJ:1:1101:9280:7106 1:N:0:86
GGGGGGGGGGGGCATGAAAACATACAAACCGTCTTTCCAGAAATTGTTCCAAGTATCGGCAACAGCTTTATCAATACCATGAAAAATATCAACCACACCA
+test-1
GGGGGGGGGGGGGGGGGCCGGGGGFF,EDFFGEDFG,@DGGCGGEGGG7DCGGGF68CGFFFGGGG@CGDGFFDFEFEFF:30CGAFFDFEFF8CAF;;8... (10 Replies)
Discussion started by: Xterra
10 Replies
LEARN ABOUT DEBIAN
libbash
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