shell-command – Error "no se puede establecer el grupo de procesos de la terminal" al ejecutar el script bash

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 .

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım