Pregunta:
Tengo las siguientes dos líneas de código en mi archivo init.el:
(setq shell-file-name "bash")
(setq shell-command-switch "-ic")
Intenté ejecutar el siguiente script para obtener una lista de ejecutables usando el script de shell dmenu_path.
(defun dmenu-path-out ()
(shell-command-to-string "dmenu_path"))
Veo el siguiente error:
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell
[
0ad
...
¿Cómo puedo evitar que bash devuelva ese error al usar shell-command
?
Respuesta:
El indicador -i
solicita que Bash se ejecute en modo interactivo, lo que requiere una terminal. La solución es dejar la variable shell-command-switch
en su valor predeterminado, que es simplemente -c
.
Si realmente necesita ejecutar Bash en modo interactivo, deberá ejecutarlo en un pseudo-terminal, utilizando start-file-process
con process-connection-type
vinculado a t
.