В zsh
установите параметр histignorespace
( установите -o histignorespace
). И в bash
добавьте ignorespace
или ignoreboth
(некоторые дистрибутивы уже делают это по умолчанию ~ / .bashrc
) в $ HISTCONTROL
или установите HISTIGNORE = '*'
, а затем вы можете запустить текущую команду с <пробел> , чтобы избежать ее записи.
:
: none
fc -nl -1
:
В zsh
вы все еще можете вспомнить эту предыдущую команду один раз, но она не сохраняется в истории.
/bin/sh: 1: Syntax error: redirection unexpected
significa que no está usando bash como shell, a pesar de sus expectativas de lo contrario. bash como sh
reconoce aquí cadenas bien (, por lo que su Makefile
funcionaría en Fedora ), pero por ejemplo, dash como sh
no lo hace. A menos que se indique lo contrario, Make usa /bin/sh
como su shell; ignora su shell de usuario predeterminado.
Configuración
SHELL=/bin/bash
en vuestro Makefile
debería arreglaros las cosas; al menos, lo hace para mí en un sistema que muestra los mismos síntomas que el suyo.
P.S.: Yes, sometimes I feel autotools would be the better choice over make.
Autotools y Make no abordan los mismos problemas; son complementarios, y usar Autotools aún significaría usar Make...
Como puede ver en el mensaje de error, el shell que invoca make
no es bash
sino /bin/sh
. sh
generalmente no entiende aquí -cadenas.
Si configura la variable make
SHELL
en/bin/bash
(o cualquiera que sea la ruta para ese shell en su sistema ), usará bash
en lugar de sh
.
Ver también la documentación GNU make
relevante sobre esto enhttps://www.gnu.org/software/make/manual/html_node/Choosing-the-Shell.html