I am trying to use a HERE document in a docker script file to generate a text file but must be doing something wrong since I get a warning message that I did not expect:
EOF: line 6: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
This is the sample script I am testing in my docker file:
RUN bash -c "$(/bin/echo -e "cat << 'EOF' | tee -a /test.txt \ \n<test> \ \n someting here \ \n something else here \ \n</test>")" \ EOF
Can anyone see what is wrong in the above statement?
Thanks.
On Tue, Apr 30, 2019 at 4:44 AM H agents@meddatainc.com wrote:
I am trying to use a HERE document in a docker script file to generate a text file but must be doing something wrong since I get a warning message that I did not expect:
EOF: line 6: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
This is the sample script I am testing in my docker file:
RUN bash -c "$(/bin/echo -e "cat << 'EOF' | tee -a /test.txt \ \n<test> \ \n someting here \ \n something else here \ \n</test>")" \ EOF
Can anyone see what is wrong in the above statement?
Thanks.
The second EOF should be before the part ")" \ and not after, because it has to represent the closure of the first one above....
So it should be something like this (I have put /tmp/test.txt as I tested as non root user that cannot write into /)
bash -c "$(/bin/echo -e "cat <<EOF | tee -a /tmp/test.txt \ \n<test> \ \n something here \ \n</test> EOF ")"
I also removed the single apex from the first 'EOF'.
I get:
[g.cecchi@ope46 ~]$ ll /tmp/test.txt ls: cannot access '/tmp/test.txt': No such file or directory
[g.cecchi@ope46 ~]$ bash -c "$(/bin/echo -e "cat <<EOF | tee -a /tmp/test.txt \
\n<test> \ \n something here \ \n</test> EOF ")"
<test> something here </test>
[g.cecchi@ope46 ~]$ cat /tmp/test.txt <test> something here </test> [g.cecchi@ope46 ~]$
HIH, Gianluca
EOF: line 6: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
This is the sample script I am testing in my docker file:
RUN bash -c "$(/bin/echo -e "cat << 'EOF' | tee -a /test.txt \ \n<test> \ \n someting here \ \n something else here \ \n</test>")" \ EOF
Can anyone see what is wrong in the above statement?
Thanks.
The second EOF should be before the part ")" \ and not after, because it has to represent the closure of the first one above....
So it should be something like this (I have put /tmp/test.txt as I tested as non root user that cannot write into /)
bash -c "$(/bin/echo -e "cat <<EOF | tee -a /tmp/test.txt \ \n<test> \ \n something here \ \n</test> EOF ")"
It is also necessary to have the closing here document delimiter on a line on its own, as you have done, but the OP hadn't. In all these things it's often useful to remove the escaped new lines. The OPs original command would been something like:
bash -c "$(/bin/echo -e "cat << 'EOF' | tee -a /test.txt \n<test> \n someting here \n something else here \n</test>")" EOF
It's obvious from this that the "EOF" isn't on a line on its own and is in the wrong place compared to the parenthesis.
P.
On 04/30/2019 02:54 AM, Gianluca Cecchi wrote:
On Tue, Apr 30, 2019 at 4:44 AM H agents@meddatainc.com wrote:
I am trying to use a HERE document in a docker script file to generate a text file but must be doing something wrong since I get a warning message that I did not expect:
EOF: line 6: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
This is the sample script I am testing in my docker file:
RUN bash -c "$(/bin/echo -e "cat << 'EOF' | tee -a /test.txt \ \n<test> \ \n someting here \ \n something else here \ \n</test>")" \ EOF
Can anyone see what is wrong in the above statement?
Thanks.
The second EOF should be before the part ")" \ and not after, because it has to represent the closure of the first one above....
So it should be something like this (I have put /tmp/test.txt as I tested as non root user that cannot write into /)
bash -c "$(/bin/echo -e "cat <<EOF | tee -a /tmp/test.txt \ \n<test> \ \n something here \ \n</test> EOF ")"
I also removed the single apex from the first 'EOF'.
I get:
[g.cecchi@ope46 ~]$ ll /tmp/test.txt ls: cannot access '/tmp/test.txt': No such file or directory
[g.cecchi@ope46 ~]$ bash -c "$(/bin/echo -e "cat <<EOF | tee -a /tmp/test.txt \
\n<test> \ \n something here \ \n</test> EOF ")"
<test> something here </test>
[g.cecchi@ope46 ~]$ cat /tmp/test.txt
<test> something here </test> [g.cecchi@ope46 ~]$
HIH, Gianluca _______________________________________________ CentOS mailing list CentOS@centos.org https://lists.centos.org/mailman/listinfo/centos
Thank you but in the docker script (running under Centos 7), I get error messages unless I add \ as below. However, the below script still results in an error message:
RUN bash -c "$(/bin/echo -e "cat <<EOF | tee -a /tmp/test.txt \ \n<test> \ \n something here \ \n</test> \ EOF \ ")"
bash: line 13: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
It looks like I need to make some additional changes when it is used in a docker script?
On April 30, 2019 8:30:45 PM EDT, H agents@meddatainc.com wrote:
On 04/30/2019 02:54 AM, Gianluca Cecchi wrote:
On Tue, Apr 30, 2019 at 4:44 AM H agents@meddatainc.com wrote:
I am trying to use a HERE document in a docker script file to
generate a
text file but must be doing something wrong since I get a warning
message
that I did not expect:
EOF: line 6: warning: here-document at line 0 delimited by
end-of-file
(wanted `EOF')
This is the sample script I am testing in my docker file:
RUN bash -c "$(/bin/echo -e "cat << 'EOF' | tee -a /test.txt \ \n<test> \ \n someting here \ \n something else here \ \n</test>")" \ EOF
Can anyone see what is wrong in the above statement?
Thanks.
The second EOF should be before the part ")" \ and not after,
because it
has to represent the closure of the first one above....
So it should be something like this (I have put /tmp/test.txt as I
tested
as non root user that cannot write into /)
bash -c "$(/bin/echo -e "cat <<EOF | tee -a /tmp/test.txt \ \n<test> \ \n something here \ \n</test> EOF ")"
I also removed the single apex from the first 'EOF'.
I get:
[g.cecchi@ope46 ~]$ ll /tmp/test.txt ls: cannot access '/tmp/test.txt': No such file or directory
[g.cecchi@ope46 ~]$ bash -c "$(/bin/echo -e "cat <<EOF | tee -a /tmp/test.txt \
\n<test> \ \n something here \ \n</test> EOF ")"
<test> something here </test>
[g.cecchi@ope46 ~]$ cat /tmp/test.txt
<test> something here </test> [g.cecchi@ope46 ~]$
HIH, Gianluca _______________________________________________ CentOS mailing list CentOS@centos.org https://lists.centos.org/mailman/listinfo/centos
Thank you but in the docker script (running under Centos 7), I get error messages unless I add \ as below. However, the below script still results in an error message:
RUN bash -c "$(/bin/echo -e "cat <<EOF | tee -a /tmp/test.txt \ \n<test> \ \n something here \ \n</test> \ EOF \ ")"
bash: line 13: warning: here-document at line 0 delimited by end-of-file (wanted `EOF')
It looks like I need to make some additional changes when it is used in a docker script?
CentOS mailing list CentOS@centos.org https://lists.centos.org/mailman/listinfo/centos
It seems that this warning message is a result of a restriction of it being used in a docker script.