Using echo to output a string to a file with forward slashs
Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Distribution: Slackware, (Non-Linux: Solaris 7,8,9; OSX; BeOS)
Posts: 1,152
Rep:
What, exactly, do you want in the file? Your quoting isn't correct, and it's unclear to me what you want in the file. If you want this:
Code:
\jsmith, "|/usr/bin/vacation jsmith"
in your file, then you need to learn about escaping characters. There are three types of escapes, ", ', and \. They each do things a little differently and it's very important to use them in the correct manner. For this application, you need to use the ' escape:
"\\$username, \"|/usr/bin/vacation $username\"" i think, basically in " quotes everything is interpreted by the shell, to put a shell-character in literally prefix it with a \ eg \ is produced by \\ " is produced by \" etc
Distribution: Slackware, (Non-Linux: Solaris 7,8,9; OSX; BeOS)
Posts: 1,152
Rep:
Use this:
echo '\'$USER', "|/usr/bin/vacation ' $USER'"'
Whatever is processing the forms is interpreting the above text in such a way that it removes the backslash.
Should be:
echo ' \ ' $USER', "|/usr/bin/vacation ' $USER'"'
without the space between the \ and the single quotes.
yeah, it still looks like there is a space between the second single quote (after the backslacsh) and the $. maybe its just the way the forums are formatted
Distribution: Slackware, (Non-Linux: Solaris 7,8,9; OSX; BeOS)
Posts: 1,152
Rep:
The only single quote that should have a space near it is the one that comes after vacation. echo takes everything literally unless it's escaped out (by single or double quotes or backslashes). echo does not strip whitespace, you need to do that yourself:
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.