Instead of using the ‘~’ in the file path, try using the ‘${HOME}’ variable 
instead. If you must use the ‘~’, you will likely need to escape it in many 
places. Another thing to note, if you use single quotes ( ‘ ) instead of double 
quotes ( “ ) , most places in bash scripts won’t try to expand the variables 
inside them. This is also helpful if you have a script calling SSH and want to 
pass a command to the remote server which contains a remote variable reference:

[bob@localhost bob]# ssh user@host ‘echo ${HOME}; exit’
[bob@localhost bob]# /home/user
Vs:
[bob@localhost bob]# ssh user@host “echo ${HOME}; exit”
[bob@localhost bob]# /home/bob

Greg

From: CentOS <centos-boun...@centos.org> on behalf of H <age...@meddatainc.com>
Date: Wednesday, July 6, 2022 at 21:41
To: Centos Mailing List <centos@centos.org>
Subject: [CentOS] Special characters in bash strings
[EXTERNAL] This email originated from outside of the organization. Do not click 
links or open attachments unless you recognize the sender and know the content 
is safe.


I have run into a bash variable string problem that I think I have nailed down 
to the variable string containing a tilde (~). Not sure if my conclusion is 
correct and could use some help.

To make a long(er) story short, an associative array variable was created:

p[work_path]="~/projects/test/"

and referenced in the following format in the shell script:

"${p[work_path]}"

To my consternation this worked fine in some places but not in others. I tried 
to use the above construct when piping output, as part of a file reference when 
calling psql from the command line and when referencing an xslt file with 
xsltproc.

In some places it worked, in others it did not but when I substituted the 
variable reference above with the path in clear text itself it then worked.

It looks like there are some nuances on variable substitution that I have yet 
to learn, perhaps tied to the use of the tilde since using the variable 
p[work_path]="/home/user/projects/test/" seemed to work in all places.

Pointers welcome!

_______________________________________________
CentOS mailing list
CentOS@centos.org
https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.centos.org%2Fmailman%2Flistinfo%2Fcentos&amp;data=05%7C01%7Cgregory.young%40n-able.com%7Cf64a3b5849a24d33e3cf08da5fb9d4d2%7C6324f4fb86ee4493ba16c819a916b487%7C1%7C0%7C637927549018775558%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=W1m1Zf5PWvAfbrPsvlZwiaymzGHhUoSbmroxchaKpRk%3D&amp;reserved=0
_______________________________________________
CentOS mailing list
CentOS@centos.org
https://lists.centos.org/mailman/listinfo/centos

Reply via email to