Using a bash script I want to echo several strings to a file. The echo statement, however, is in a function and thus indented but I do /not/ want the strings echoed indented in the new file. Is this doable?
Here is an example:
f () {
echo "
# this is a test
a=123
b=456" > file.txt
}
File.txt should the contain:
# this is a test
a=123
b=456
Thus no indentation. It seems that if I prepend each line with \b the line should be backspaced which would work nicely but the echo statement seems to replace a backspace within the quotes to spaces...
On 1/14/22 17:18, H wrote:
Using a bash script I want to echo several strings to a file. The echo statement, however, is in a function and thus indented but I do /not/ want the strings echoed indented in the new file. Is this doable?
I don't think you can do that for strings passed as arguments, but you can do that with strings that are here-documents: https://www.oreilly.com/library/view/bash-cookbook/0596526784/ch03s04.html
So, maybe:
f () { cat > file.txt <<-'EOF' # this is a test a=123 b=456 EOF }
(Note that those lines need to be indented with tabs. None of my email editors will compose in plain text at the moment, oddly, so those are being converted to spaces)
On 01/14/2022 08:59 PM, Gordon Messmer wrote:
On 1/14/22 17:18, H wrote:
Using a bash script I want to echo several strings to a file. The echo statement, however, is in a function and thus indented but I do /not/ want the strings echoed indented in the new file. Is this doable?
I don't think you can do that for strings passed as arguments, but you can do that with strings that are here-documents: https://www.oreilly.com/library/view/bash-cookbook/0596526784/ch03s04.html
So, maybe:
f () { cat > file.txt <<-'EOF' # this is a test a=123 b=456 EOF }
(Note that those lines need to be indented with tabs. None of my email editors will compose in plain text at the moment, oddly, so those are being converted to spaces)
CentOS mailing list CentOS@centos.org https://lists.centos.org/mailman/listinfo/centos
Thank you, will try that. I use Geany as my editor and for some reason it changes all tabs to spaces when I edit a bash script... Not sure why?