* Absolute path in for loop / output?
@ 2021-09-07 15:21 Martin Post
[not found] ` <78489a20-5148-4826-ab6a-b43fa48938d4n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Martin Post @ 2021-09-07 15:21 UTC (permalink / raw)
To: pandoc-discuss
[-- Attachment #1.1: Type: text/plain, Size: 1091 bytes --]
I need to use Pandoc with absolute input and output paths in a shell
script, like so:
#!/bin/bash
for f in "/users/myname/desktop/test/input/"*.md; \
do \
pandoc "$f" \
--standalone \
-o "/users/myname/desktop/test/output/"${f%.md}.htm; \
done
… which gives an error:
/users/myname/desktop/test/output//users/myname/desktop/test/input/1.htm:
openFile: does not exist (No such file or directory)
(Removing the output path will render the files in the source directory, as
expected.)
I realise the problem is probably my limited understanding of how the shell
works, not something with Pandoc. I still hope someone here can help. Thank
you.
--
You received this message because you are subscribed to the Google Groups "pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/78489a20-5148-4826-ab6a-b43fa48938d4n%40googlegroups.com.
[-- Attachment #1.2: Type: text/html, Size: 1567 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Absolute path in for loop / output?
[not found] ` <78489a20-5148-4826-ab6a-b43fa48938d4n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
@ 2021-09-07 15:49 ` Bastien DUMONT
2021-09-07 17:06 ` John MacFarlane
2021-09-07 19:26 ` Marc Chantreux
2 siblings, 0 replies; 5+ messages in thread
From: Bastien DUMONT @ 2021-09-07 15:49 UTC (permalink / raw)
To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw
The problem is purely related with your bash script, not with pandoc. You seem to have contradictory expectations about what the value of $f will be: in `pandoc "$f", you anticipate it to be "/users/myname/desktop/test/input/1.md" (which is right), while in `-o "/users/myname/desktop/test/output/"${f%.md}.htm", it is supposed to be only "1.md" (and it isn't, hence the error message).
A little trick: when you have error with bash scripts, it helps to run them with `bash -xv myscript.sh` in order to see what Bash does step by step and what are the parameter values.
Le Tuesday 07 September 2021 à 08:21:42AM, Martin Post a écrit :
> I need to use Pandoc with absolute input and output paths in a shell script,
> like so:
>
> #!/bin/bash
>
> for f in "/users/myname/desktop/test/input/"*.md; \
> do \
> pandoc "$f" \
> --standalone \
> -o "/users/myname/desktop/test/output/"${f%.md}.htm; \
> done
>
> … which gives an error:
>
> /users/myname/desktop/test/output//users/myname/desktop/test/input/1.htm:
> openFile: does not exist (No such file or directory)
>
> (Removing the output path will render the files in the source directory, as
> expected.)
>
> I realise the problem is probably my limited understanding of how the shell
> works, not something with Pandoc. I still hope someone here can help. Thank
> you.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "pandoc-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an email
> to [1]pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> To view this discussion on the web visit [2]https://groups.google.com/d/msgid/
> pandoc-discuss/78489a20-5148-4826-ab6a-b43fa48938d4n%40googlegroups.com.
>
> References:
>
> [1] mailto:pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
> [2] https://groups.google.com/d/msgid/pandoc-discuss/78489a20-5148-4826-ab6a-b43fa48938d4n%40googlegroups.com?utm_medium=email&utm_source=footer
--
You received this message because you are subscribed to the Google Groups "pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/YTeKDuaTZt9ov62V%40localhost.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Absolute path in for loop / output?
[not found] ` <78489a20-5148-4826-ab6a-b43fa48938d4n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2021-09-07 15:49 ` Bastien DUMONT
@ 2021-09-07 17:06 ` John MacFarlane
2021-09-07 19:26 ` Marc Chantreux
2 siblings, 0 replies; 5+ messages in thread
From: John MacFarlane @ 2021-09-07 17:06 UTC (permalink / raw)
To: Martin Post, pandoc-discuss
Here $f is going to be an absolute path.
So you should not add a directory.
Just use
-o "${f%.md}.htm"; \
Martin Post <martinpostberlin-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:
> I need to use Pandoc with absolute input and output paths in a shell
> script, like so:
>
> #!/bin/bash
>
> for f in "/users/myname/desktop/test/input/"*.md; \
> do \
> pandoc "$f" \
> --standalone \
> -o "/users/myname/desktop/test/output/"${f%.md}.htm; \
> done
>
> … which gives an error:
>
> /users/myname/desktop/test/output//users/myname/desktop/test/input/1.htm:
> openFile: does not exist (No such file or directory)
>
> (Removing the output path will render the files in the source directory, as
> expected.)
>
> I realise the problem is probably my limited understanding of how the shell
> works, not something with Pandoc. I still hope someone here can help. Thank
> you.
>
> --
> You received this message because you are subscribed to the Google Groups "pandoc-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
> To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/78489a20-5148-4826-ab6a-b43fa48938d4n%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/m25yvc48o6.fsf%40MacBook-Pro-2.hsd1.ca.comcast.net.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Absolute path in for loop / output?
[not found] ` <78489a20-5148-4826-ab6a-b43fa48938d4n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2021-09-07 15:49 ` Bastien DUMONT
2021-09-07 17:06 ` John MacFarlane
@ 2021-09-07 19:26 ` Marc Chantreux
[not found] ` <YTe8189Jim/Iqif5-AWr1gsF+PRs9Vg2ZJzWmxBLO4URiXwcH@public.gmane.org>
2 siblings, 1 reply; 5+ messages in thread
From: Marc Chantreux @ 2021-09-07 19:26 UTC (permalink / raw)
To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw
hello,
> for f in "/users/myname/desktop/test/input/"*.md; \
> do \
> pandoc "$f" \
> --standalone \
> -o "/users/myname/desktop/test/output/"${f%.md}.htm; \
> done
close :) this should do the trick:
base=/users/myname/desktop/test
pushd $base/input
for f in *.md ; do
pandoc "$f" -s -o $base/output/${f.md}.htm
done
popd
if you use zsh and don't care about a subshell, i would have writen
( base=/users/myname/desktop/test
cd $base/input
for f (*.md) pandoc "$f" -s -o $base/output/$f:r.htm )
however i would like to mention make as a better solution:
* a makefile to do the same job will be
BASE = /users/myname/desktop/test
SRCS != ls ${BASE}/input/*.md
PAGES = ${SRCS:${BASE}/input/%.md=${BASE}/output/%.htm}
all : ${PAGES}
${BASE}/output/%.htm: ${BASE}/input/%.md
pandoc -s -o $@ $<
clean:; rm -rf ${BASE}/o/*
* you can just type
make # build the missing pages one by one
make -j4 # build the missing pages four by four
make -b # rebuild every pages
make clean # remove all the pages
regards
marc
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Absolute path in for loop / output?
[not found] ` <YTe8189Jim/Iqif5-AWr1gsF+PRs9Vg2ZJzWmxBLO4URiXwcH@public.gmane.org>
@ 2021-09-11 19:52 ` Martin Post
0 siblings, 0 replies; 5+ messages in thread
From: Martin Post @ 2021-09-11 19:52 UTC (permalink / raw)
To: pandoc-discuss
[-- Attachment #1.1: Type: text/plain, Size: 1681 bytes --]
Thank you, everyone.
@ Marc: This is exactly what I was looking for.
On Tuesday, September 7, 2021 at 9:26:24 PM UTC+2 ei...-fbXiWI9j2LLYtjvyW6yDsg@public.gmane.org wrote:
> hello,
>
> > for f in "/users/myname/desktop/test/input/"*.md; \
> > do \
> > pandoc "$f" \
> > --standalone \
> > -o "/users/myname/desktop/test/output/"${f%.md}.htm; \
> > done
>
> close :) this should do the trick:
>
> base=/users/myname/desktop/test
> pushd $base/input
> for f in *.md ; do
> pandoc "$f" -s -o $base/output/${f.md}.htm
> done
> popd
>
> if you use zsh and don't care about a subshell, i would have writen
>
> ( base=/users/myname/desktop/test
> cd $base/input
> for f (*.md) pandoc "$f" -s -o $base/output/$f:r.htm )
>
> however i would like to mention make as a better solution:
>
> * a makefile to do the same job will be
>
> BASE = /users/myname/desktop/test
> SRCS != ls ${BASE}/input/*.md
> PAGES = ${SRCS:${BASE}/input/%.md=${BASE}/output/%.htm}
> all : ${PAGES}
> ${BASE}/output/%.htm: ${BASE}/input/%.md
> pandoc -s -o $@ $<
> clean:; rm -rf ${BASE}/o/*
>
> * you can just type
>
> make # build the missing pages one by one
> make -j4 # build the missing pages four by four
> make -b # rebuild every pages
> make clean # remove all the pages
>
> regards
> marc
>
--
You received this message because you are subscribed to the Google Groups "pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/0d4acc1e-9566-4d61-8c55-57055b19ae0en%40googlegroups.com.
[-- Attachment #1.2: Type: text/html, Size: 2552 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-09-11 19:52 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-07 15:21 Absolute path in for loop / output? Martin Post
[not found] ` <78489a20-5148-4826-ab6a-b43fa48938d4n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2021-09-07 15:49 ` Bastien DUMONT
2021-09-07 17:06 ` John MacFarlane
2021-09-07 19:26 ` Marc Chantreux
[not found] ` <YTe8189Jim/Iqif5-AWr1gsF+PRs9Vg2ZJzWmxBLO4URiXwcH@public.gmane.org>
2021-09-11 19:52 ` Martin Post
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).