Having a terrible problem with quotes/single quotes!


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Having a terrible problem with quotes/single quotes!
# 1  
Old 07-26-2011
Having a terrible problem with quotes/single quotes!

Hello. I'm trying to write a bash script that uses GNU screen and have hit a brick wall that has cost me many hours... (I'm sure it has something to do with quoting/globbing, which is why I post it here)

I can make a script that does the following just fine:

test.sh:
Code:
#!/bin/bash

# make a screen session named blah with a window named "dummy"
screen -dmS blah -t dummy
# and give it a specific hardstatus line
screen -r blah -X hardstatus on
screen -r blah -X hardstatus alwayslastline
screen -r blah -X hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m/%d/%y %{W}%c %{g}]'

# lastly, add a window, dummy2
screen -d -r blah -X screen -t dummy2

A simple `screen -r blah` will show it worked well! I have a pretty hardstatus line that shows the hostname, windownames, and dates.


Now I want to wrap the screen commands into a Launch command...

test2.sh:
Code:
#!/bin/bash

Launch()
{
     local cmd=$1
     local res
 
     res=$($cmd)


    echo $res
}



# make a screen session named blah with a window named "dummy"
Launch "screen -dmS blah -t dummy"
# and give it a specific hardstatus line
Launch "screen -r blah -X hardstatus on"
Launch "screen -r blah -X hardstatus alwayslastline"
Launch "screen -r blah -X hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{=  kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}  %m/%d/%y %{W}%c %{g}]'"

# lastly, add a window, dummy2
Launch "screen -d -r blah -X screen -t dummy2"

if you do a `screen -r blah`now...
Most everything worked - it created the "blah" screen session, and even created the "dummy" and "dummy 2" windows.. But look at the status line, its just a blank white bar!

what am I doing wrong? This is killing me!
# 2  
Old 07-26-2011
Quote:
Originally Posted by jondecker76
Code:
     res=$($cmd)

...snip...

Launch "screen -r blah -X hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{=  kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}  %m/%d/%y %{W}%c %{g}]'"

I don't use screen, so I'm not at all familiar with it. However, as you suspect, that command substitution will not properly handle the single quotes nor the glob characters (e.g. *, ?, [...], etc) in that screen command-string argument.

As long as it's trusted input, you can try: res=$(eval "$cmd")

Regards,
Alister
# 3  
Old 07-27-2011
Thanks, that worked great!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Issue with Single Quotes and Double Quotes for prompt PS1

Hi, Trying to change the prompt. I have the following code. export PS1=' <${USER}@`hostname -s`>$ ' The hostname is not displayed <abc@`hostname -s`>$ uname -a AIX xyz 1 6 00F736154C00 <adcwl4h@`hostname -s`>$ If I use double quotes, then the hostname is printed properly but... (3 Replies)
Discussion started by: bobbygsk
3 Replies

2. Shell Programming and Scripting

Replace single quote with two single quotes in perl

Hi I want to replace single quote with two single quotes in a perl string. If the string is <It's Simpson's book> It should become <It''s Simpson''s book> (3 Replies)
Discussion started by: DushyantG
3 Replies

3. UNIX for Dummies Questions & Answers

grep single quotes or double quotes

Unix superusers, I am new to unix but would like to learn more about grep. I am very familiar with regular expressions as i have used them for searching text files in windows based text editors. Since I am not very familiar with Unix, I dont understand when one should use GREP with the... (2 Replies)
Discussion started by: george_vandelet
2 Replies

4. Shell Programming and Scripting

problem with echo inserting single quotes

Consider the following script: #!/bin/bash exclude='Archive PST,SystemState' IFS=$"," rsyncExclusions=$(for exclude in ${exclude}; do echo -n -e --exclude=\"${exclude}\"\ ; done) unset IFS echo rsync $rsyncExclusions test rsync -avh --delete --delete-excluded "$rsyncExclusions"... (7 Replies)
Discussion started by: jelloir
7 Replies

5. Shell Programming and Scripting

Single quotes and double quotes

Hi guys, I have a sed line in double quotes which works fine, but I want it to be in single quotes here is the sed line sed "/abc_def/s/\'.*\'/\'\${abc_def}\'/" can some one give the equivalent to the above script in single quotes Thanks a ton (5 Replies)
Discussion started by: sol_nov
5 Replies

6. Shell Programming and Scripting

Problem renaming a file with single quotes

Hi, I am trying to create a script which validates the incoming source files. The script has File name Pattern as Argument. The First part of the script validates if there are any files available if then echo "\n Files are available to process \n" else echo "\n File does not... (9 Replies)
Discussion started by: dsshishya
9 Replies

7. Shell Programming and Scripting

Double quotes or single quotes when using ssh?

I'm not very familiar with the ssh command. When I tried to set a variable and then echo its value on a remote machine via ssh, I found a problem. For example, $ ITSME=itsme $ ssh xxx.xxxx.xxx.xxx "ITSME=itsyou; echo $ITSME" itsme $ ssh xxx.xxxx.xxx.xxx 'ITSME=itsyou; echo $ITSME' itsyou $... (3 Replies)
Discussion started by: password636
3 Replies

8. Programming

Checking Single Quotes in C

Hi ! Can anyone please tell me how can I check if a character is single quotes in C ? Thanks, Jane A (3 Replies)
Discussion started by: janemary.a
3 Replies

9. Shell Programming and Scripting

problem with single quotes in a string and findbug

I'm having trouble manipulating a string that contains single quotes (') in it. I'm writing a ksh script to parse in a few queries from a config file, such as this: findbug \(\(Project 'in' "Deployment,HDRCI,LHS,LSS,WUCI" '&&' Status 'in' "N" '&&' New_on 'lessthan' "070107" \)\) '&&' \(Class... (9 Replies)
Discussion started by: bob122480
9 Replies

10. UNIX for Dummies Questions & Answers

im stuck! 'single quotes'

Hi all... This is probably the simplest question but its driving me round the bend :-( does anyone know how to store a single quote in a variable. Im using cygwin bash for example single_qoute = " ' " echo single_quote dosnt work :-( it is absolutely baffling me! The reason why... (4 Replies)
Discussion started by: satnamx
4 Replies
Login or Register to Ask a Question

Featured Tech Videos