Sponsored Content
Top Forums Shell Programming and Scripting problem with echo inserting single quotes Post 302452531 by jelloir on Saturday 11th of September 2010 12:50:43 AM
Old 09-11-2010
Quote:
Originally Posted by Scrutinizer
The read solution will not work in bash, since the part after the pipe runs in a subshell and thus the variables lose their values.
Your original idea would work, with a different variable name and a correct way of setting/unsetting IFS like methyl suggested.

You can do something like this:
Code:
rsyncExclusions=$(IFS=,;for excl in ${exclude}; do printf "%s" "--exclude=\"$excl\" "; done)

then you temporarily change IFS and you do not have to set IFS to its original value.
Actually, I cannot get this to work either... I am using:

Code:
#!/bin/bash

exclude='Archive PST,SystemState'

#rsyncExclusions=$(IFS=,;for excl in ${exclude}; do printf "%s" "--exclude=\"$excl\" "; done)

echo "${rsyncExclusions}"
rsync -avh --delete --delete-excluded "${rsyncExclusions}" /tmp/test1/ /tmp/test2

I also tried to add "tr" at the end to remove the single quotes which are causing the problems but this did not work either.

Code:
rsyncExclusions=$(IFS=,;for excl in ${exclude}; do printf "%s" "--exclude=\"$excl\" " | tr -d "'" ; done)

output is:

Code:
$ bash -x /tmp/exclude 
+ exclude='Archive PST,SystemState'
++ IFS=,
++ for excl in '${exclude}'
++ printf %s '--exclude="Archive PST" '
++ for excl in '${exclude}'
++ printf %s '--exclude="SystemState" '
+ rsyncExclusions='--exclude="Archive PST" --exclude="SystemState" '
+ echo '--exclude="Archive PST" --exclude="SystemState" '
--exclude="Archive PST" --exclude="SystemState" 
+ rsync -avh --delete --delete-excluded '--exclude="Archive PST" --exclude="SystemState" ' /tmp/test1/ /tmp/test2
sending incremental file list

sent 78 bytes  received 14 bytes  184.00 bytes/sec
total size is 0  speedup is 0.00
$ ll /tmp/test2
total 16K
drwxr-xr-x 4 root root 4.0K 2010-09-07 23:41 ./
drwxrwxrwt 6 root root 4.0K 2010-09-08 01:25 ../
drwxr-xr-x 2 root root 4.0K 2010-09-07 23:32 Archive PST/
drwxr-xr-x 2 root root 4.0K 2010-09-07 23:41 SystemState/

 

10 More Discussions You Might Find Interesting

1. 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

2. Shell Programming and Scripting

echo using single quotes

Hi, Please help me to echo the following statement using single quotes Why can't I write 's between single quotes Thanks in advance, Chella (3 Replies)
Discussion started by: chella
3 Replies

3. 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

4. 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

5. 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

6. 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

7. Shell Programming and Scripting

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: #!/bin/bash # make... (2 Replies)
Discussion started by: jondecker76
2 Replies

8. UNIX for Dummies Questions & Answers

awk for inserting a variable containing single and double quotes

Hi i have to insert the below line into a specific line number of another file export MBR_CNT_PRCP_TYPE_CODES_DEL="'01','02','04','05','49','55','UNK'" I have passed the above line to a variable say ins_line. I have used below command to perform the insert awk 'NR==3{print "'"${ins_line}"'"}1'... (1 Reply)
Discussion started by: sathishteradata
1 Replies

9. Shell Programming and Scripting

Unable to echo single quotes inside awk

# echo 'export HISTFILE=/var/log/history/history_$(uname -n)_$(date +%Y:%b:%d:%H:%M)_$(who am i | awk '{print \$1}')' >> new_file # # cat new_file export HISTFILE=/var/log/history/history_$(uname -n)_$(date +%Y:%b:%d:%H:%M)_$(who am i | awk {print $1}) # Now how to echo the quotes around the... (2 Replies)
Discussion started by: proactiveaditya
2 Replies

10. 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
set directory to new epoch(1m)											    set directory to new epoch(1m)

NAME
set directory to new epoch - Reconstructs a directory's replica set, allowing you to designate a new master replica or to exclude a replica SYNOPSIS
cdscp set directory directory-name to new epoch master clearinghouse-name [readonly clearinghouse-name...] [exclude clearinghouse-name...] ARGUMENTS
The full name of the directory. The full name of the clearinghouse in which an individual replica is located. The first clearinghouse- name specifies where the master replica is stored. DESCRIPTION
The set directory to new epoch command reconstructs a directory's replica set, allowing you to designate a new master replica or to exclude a replica. You must list each existing replica and indicate whether an existing replica needs to be included in or excluded from the new replica set. You can include or exclude more than one replica. The ellipses (...) indicates that you can specify multiple clearinghouse names, separated by spaces. When you set a new epoch on a directory, you must disable the clearinghouse containing the replica that is being excluded. To do this, use the disable server command (if the server has more than one clearinghouse, all its clearinghouses will be disabled). Note that all clear- inghouses that are not excluded must be enabled and available before you issue the disable server command. Privilege Required You must have administer permission to the directory, and the server principal needs administer, read, and write permission to the direc- tory. When designating a new master replica, you also need write permission to the clearinghouse that stores the new master replica, and the server principal needs write permission to each clearinghouse where the replica type is changed to read-only. NOTE
This command may be replaced in future releases by the dcecp command, and may no longer be supported at that time. EXAMPLE
The following command sets a new epoch for the directory /.:/mfg. The master replica is in the clearinghouse /.:/Paris1_CH, and read-only replicas are in the clearinghouses /.:/Chicago1_CH, /.:/Seattle_CH, and /.:/NY1_CH. The new replica set excludes the replica in the clear- inghouse /.:/NY1_CH. cdscp> set directory /.:/mfg to new epoch master /.:/Paris1_CH > readonly /.:/Chicago1_CH /.:/Seattle_CH exclude /.:/NY1_CH RELATED INFORMATION
Commands: set directory to skulk(1m), show directory(1m), show replica(1m) set directory to new epoch(1m)
All times are GMT -4. The time now is 08:59 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy