04-01-2007
Shell Script -- problem reading backslash(\)!!
Hello! I am writing a program that reads a bunch of arguments from the command line,then read information from a file(passed as one of the arguments) and do some computation. The problem I am facing is when a backslash(\) is present as one of the arguments, suppose $ myprog \ abc xyz,the backslash is completely ignored, for the previous example $1 is "abc" where as it should be "\", I have tried using double-quotes("$1") but it still stays the same. The problem is the same when I am reading from a file the backslash character is completely ignored as if it were a space or a tab.
How can I prevent htis and read "\" as it is? Your help will be greatly appreciated.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Dear all:
I want to write a script capable of reading specific rows and collumns of a table, into a variable.
Just imagine i have a file named table.dat which contains:
GENERAL INFORMATION
Col 1 Col2 Col3
1 1
2 2
3 3
4 4
What i want to do... (13 Replies)
Discussion started by: luiscarvalheiro
13 Replies
2. Shell Programming and Scripting
For reading a file through shell script I am using yhe code :
while read line
do
echo $line
done<data.txt
It reads all the line of that file data.txt.
Content of data.txt looks like:
code=y
sql=y
total no of sql files=4
a.sql
b.sql
c.sql
d.sql
cpp=n
c=y
total no of c files=1 (4 Replies)
Discussion started by: Dip
4 Replies
3. Shell Programming and Scripting
Hi,
Data file named parameter contains :
DB=y
Alter_def.sql
Create_abc.sql
SQL=y
database.sql
my_data.sql
To read this file I use
var_sql=$(awk -F= '$1 == "SQL" { print $2 }' parameter.txt)
if
then
sql_f_name=`grep "\.sql" parameter.txt`
echo $sql_f_name
fi (2 Replies)
Discussion started by: Dip
2 Replies
4. Shell Programming and Scripting
I have a few .tex files generated with html2latex. They have some extra \\ that generate error with pdflatex, so I would like to get rid of them.
This
perl -p -i -e s/\\\\//g myfile.tex
with or without simple or double quote remove all of the backslashes, also the single ones needed by tex.
How... (2 Replies)
Discussion started by: ahsog
2 Replies
5. Shell Programming and Scripting
Hi all,
I have wriiten an expect script that genearates a public private key pair through ssh-keygen and then copies that key to the authorized keys file of the remote system . The problem i am facing is when i get a password for the remote machine containg a trailing backslash , the send command... (4 Replies)
Discussion started by: pradeeptyagi23
4 Replies
6. Shell Programming and Scripting
How do i read from kb using shell script but i need to read it from same line.
Script :-
echo "Please Enter Your Choice "
read CHOICE
But it goes to next line i need it to read it next to Choice and not new line. (4 Replies)
Discussion started by: dinjo_jo
4 Replies
7. Shell Programming and Scripting
I have a shell script which has awk utlilty,also,in it. This a single script that many other jobs (informatica) using. Each job ll generate a log file. This script will read the particular log file and need to give output. The log file is act as input file for the script. So , a single script used... (2 Replies)
Discussion started by: Gopal_Engg
2 Replies
8. Shell Programming and Scripting
Hello Firends
I have a file that contains data within single quotes, which has meaning of its own. When I am trying to parse through the file for a different functionality I noticed that I was loosing the backslash when occurrences in the file look like ('\0'). I would want to retain the... (3 Replies)
Discussion started by: easwam
3 Replies
9. Shell Programming and Scripting
Alright, so the goal of my script is to read text from standard input and store it into a file using the ex-editor:
so far i've got this, but it doesn't work.
#!/bin/s
read text
ex $1 >> HERE
text
HERE
I don't get any errors either, so i don't know what i'm doing wrong. (7 Replies)
Discussion started by: Bertieboy7
7 Replies
10. Shell Programming and Scripting
I found that
echo "aaa" | awk '{print ",\\";}'
works, and it will give "\".
but
ddd=`echo "aaa" | awk '{print ",\\";}'`; echo $ddd
will not work.
Could anyone tell me why? thank you. (8 Replies)
Discussion started by: wxuyec
8 Replies
subst(n) Tcl Built-In Commands subst(n)
__________________________________________________________________________________________________________________________________________________
NAME
subst - Perform backslash, command, and variable substitutions
SYNOPSIS
subst ?-nobackslashes? ?-nocommands? ?-novariables? string
_________________________________________________________________
DESCRIPTION
This command performs variable substitutions, command substitutions, and backslash substitutions on its string argument and returns the
fully-substituted result. The substitutions are performed in exactly the same way as for Tcl commands. As a result, the string argument
is actually substituted twice, once by the Tcl parser in the usual fashion for Tcl commands, and again by the subst command.
If any of the -nobackslashes, -nocommands, or -novariables are specified, then the corresponding substitutions are not performed. For
example, if -nocommands is specified, command substitution is not performed: open and close brackets are treated as ordinary characters
with no special interpretation.
Note that the substitution of one kind can include substitution of other kinds. For example, even when the -novariables option is speci-
fied, command substitution is performed without restriction. This means that any variable substitution necessary to complete the command
substitution will still take place. Likewise, any command substitution necessary to complete a variable substitution will take place, even
when -nocommands is specified. See the EXAMPLES below.
If an error occurs during substitution, then subst will return that error. If a break exception occurs during command or variable substi-
tution, the result of the whole substitution will be the string (as substituted) up to the start of the substitution that raised the excep-
tion. If a continue exception occurs during the evaluation of a command or variable substitution, an empty string will be substituted for
that entire command or variable substitution (as long as it is well-formed Tcl.) If a return exception occurs, or any other return code is
returned during command or variable substitution, then the returned value is substituted for that substitution. See the EXAMPLES below.
In this way, all exceptional return codes are "caught" by subst. The subst command itself will either return an error, or will complete
successfully.
EXAMPLES
When it performs its substitutions, subst does not give any special treatment to double quotes or curly braces (except within command sub-
stitutions) so the script
set a 44
subst {xyz {$a}}
returns "xyz {44}", not "xyz {$a}" and the script
set a "p} q {r"
subst {xyz {$a}}
returns "xyz {p} q {r}", not "xyz {p} q {r}".
When command substitution is performed, it includes any variable substitution necessary to evaluate the script.
set a 44
subst -novariables {$a [format $a]}
returns "$a 44", not "$a $a". Similarly, when variable substitution is performed, it includes any command substitution necessary to
retrieve the value of the variable.
proc b {} {return c}
array set a {c c [b] tricky}
subst -nocommands {[b] $a([b])}
returns "[b] c", not "[b] tricky".
The continue and break exceptions allow command substitutions to prevent substitution of the rest of the command substitution and the rest
of string respectively, giving script authors more options when processing text using subst. For example, the script
subst {abc,[break],def}
returns "abc,", not "abc,,def" and the script
subst {abc,[continue;expr {1+2}],def}
returns "abc,,def", not "abc,3,def".
Other exceptional return codes substitute the returned value
subst {abc,[return foo;expr {1+2}],def}
returns "abc,foo,def", not "abc,3,def" and
subst {abc,[return -code 10 foo;expr {1+2}],def}
also returns "abc,foo,def", not "abc,3,def".
SEE ALSO
Tcl(n), eval(n), break(n), continue(n)
KEYWORDS
backslash substitution, command substitution, variable substitution
Tcl 7.4 subst(n)