Tcsh, using " in a string variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Tcsh, using " in a string variable
# 1  
Old 08-30-2018
Tcsh, using " in a string variable

Hallo,

I try to write a tcsh-script which works with ImageMagick.
The following command line works perfectly:

Code:
convert a.tif -pointsize 80 -draw " gravity NorthWest fill black text 0,12 a " b.tif

I use the following code in a script (it is a minimal example to show the problem):

Code:
#!/bin/tcsh 
set gf = \" 
set namestr = "-pointsize 80 -draw $gf gravity NorthWest fill black text 0,12 a $gf" 
echo $namestr
convert a.tif $namestr b.tif

In my opinion, the last line of the code should do the same as the above command. However, the last line produces error messages, which are related to the "-symbols in namestr.

Any idea to get the script working?

Daniel
# 2  
Old 08-30-2018
Quotes inside quotes don't work that way. Once they're in a string, they're literal characters. This is to prevent chaos and unintended results whenever your input contains ".

What problem are you trying to solve with quotes-in-quotes? Argument splitting?
# 3  
Old 08-30-2018
You can try another run of the shell parser (after the variable substituition)
Code:
eval convert a.tif $namestr b.tif

The second run should see the two " and form a "string".
# 4  
Old 08-30-2018
The script works like this:

Code:
mv $file t.tif
if condition1 then
      convert t.tif stuff1 s.tif
      mv s.tif t.tif
endif
 
if condition2 then 
      convert t.tif stuff2 s.tif
      mv s.tif t.tif
endif

if condition3 then 
      convert t.tif stuff3 s.tif
      mv s.tif t.tif
endif

I want to prevent the generation of the temporary files s.tif to optimize the script.


Code:
if condition1 then 
    set s1 = stuff1
else 
    set s1 = ""
endif

# ... same for 2 and 3, and then

convert $file $s1 $s2 $s3 t.tif

Daniel

------ Post updated at 12:07 PM ------

Quote:
Originally Posted by MadeInGermany
You can try another run of the shell parser (after the variable substituition)
Code:
eval convert a.tif $namestr b.tif

The second run should see the two " and form a "string".

It worked, thanks!!!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How can I find "-" ni the string variable?

I have 100 strings, which have YYYYDDMMHHMMSS in it and only one is YYYYMMDD-HHMMSS. I want to find that dash and replace it. If I check each string, using sed 's/-//g', it shows me warning that - is not found. So I need if ;then sed 's/-//g', but I cannot find correct regular expression to... (11 Replies)
Discussion started by: digioleg54
11 Replies

2. Shell Programming and Scripting

TCSH scripts that use the same variable names

If I run two different TCSH scripts simultaneously that use identical variable names will this cause any problems? (1 Reply)
Discussion started by: thibodc
1 Replies

3. Shell Programming and Scripting

tcsh - understanding difference between "echo string" and "echo string > /dev/stdout"

I came across and unexpected behavior with redirections in tcsh. I know, csh is not best for redirections, but I'd like to understand what is happening here. I have following script (called out_to_streams.csh): #!/bin/tcsh -f echo Redirected to STDOUT > /dev/stdout echo Redirected to... (2 Replies)
Discussion started by: marcink
2 Replies

4. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

5. Shell Programming and Scripting

sed - extract string before "/" from variable- linux 2.6.9-89

Hi, I have a FTP script which gets called from a wrapper script that exports a variable having value as: "/export/home/dips/logs/dipsSFTP_file1.log.YYYYMMDDHHMISS". I want to extract the file name "dipsSFTP_file1.log.YYYYMMDDHHMISS" and the dir path "/export/home/dips/logs/" from this... (4 Replies)
Discussion started by: dips_ag
4 Replies

6. Shell Programming and Scripting

Keeping " in string variable

Hi again, in my bash script I have several variable strings like in an array STRING_NAME="qqq qqq qqq" STRING_NAME="www www www" STRING_NAME="eee eee eee" This strings are passed to another program as ${STRING_NAME} The problem is the program doesn't recognize the whole string "qqq... (2 Replies)
Discussion started by: f_o_555
2 Replies

7. Shell Programming and Scripting

input string="3MMTQSZ348GGMZRQWMJM4SD6M";output string="3MMTQ-SZ348-GGMZR-QWMJM-4SD6

input string="3MMTQSZ348GGMZRQWMJM4SD6M" output string="3MMTQ-SZ348-GGMZR-QWMJM-4SD6M" using linux shell script (4 Replies)
Discussion started by: pankajd
4 Replies

8. UNIX for Dummies Questions & Answers

"$variable" is not behaving as a string in my script

Hi All, I am using the below while syntax for reading my file but its not working. Below is the line in my file " 123 rteyu 566" when I use below code the spaces are truncated for 1st variable while read line do x=`echo "$line"|cut -c 1-8` y=`echo "$line"|cut -c 9-15` echo "$x" echo "$y"... (3 Replies)
Discussion started by: yabhi_22
3 Replies

9. Shell Programming and Scripting

How to combine "find" command in for each loop (tcsh)

Hello I was wandering if I can combine find command in side for each loop in unix the main propose is to change some thing in files from several types and not all of them is this possible ? (on liner script? ) tnx for the helppers (3 Replies)
Discussion started by: umen
3 Replies

10. UNIX for Advanced & Expert Users

What is "escape sequence" in tcsh on Solaris

I've tried \e, \033, ^[, they doesn't work with tcsh on Solaris. Anyone could give a help? Thanks, WP (2 Replies)
Discussion started by: modemer
2 Replies
Login or Register to Ask a Question