(insert "[" (shell-command-to-string "~/lombardi/http_fetch.sh") "]")
Ako môžem odovzdať argument funkcii http_fetch.sh. Tento argument sa dosiahne vyhodnotením (elfeed-entry-link entry)
Skúsil som použiť znak „vpredu, ale skončil som s chybou bash.
odpovede:
1 pre odpoveď č. 1použitie concat
pripojiť reťazec, ktorý je výsledkom volania elfeed-entry-link
na koniec príkazu shell:
(insert "["
(shell-command-to-string
(concat "~/lombardi/http_fetch.sh " (shell-quote-argument (elfeed-entry-link entry))))
"]")
Na shell-quote-argument
chráni príkaz v prípade, že výsledok elfeed-entry-link
obsahuje shell metacharnaky alebo medzeru. (ÚPRAVA: odstránená manuálna citácia pôvodne navrhovaná a použitá shell-quote-argument
namiesto toho, vďaka komentáru od @phils.)
Všimnite si tiež, že výsledok shell-command-to-string
bude s najväčšou pravdepodobnosťou obsahovať posledný nový riadok, takže nezabudnite zbaviť to ak to nechceš.
0 pre odpoveď č. 2
Môžeš použiť format
interpolovať reťazce.
(insert "["
(shell-command-to-string
(format "~/lombardi/http_fetch.sh %s" (elfeed-entry-link entry)))
"]")
Ako spomína Steve, mali by ste ho naozaj používať shell-quote-argument
aby ste pri odovzdávaní argumentu zaobchádzali s medzerami a úvodzovkami správne.