Вы ищете local-fs.target
(для локальных файловых систем) и remote-fs.target
(для сетевых файловых систем). Они задокументированы на странице systemd.special.
См. также директиву RequiresMountsFor
в systemd.unit.
Realice la sustitución en un subshell en lugar del shell actual.
PATH=abc:$PATH sh -c 'echo $PATH'
Cuando corres
PATH=abc:$PATH echo $PATH
o, en el caso más general,
variable=value utility
entonces variable
se establece en el entorno deutility
(pero no en el entorno actual ).
Sin embargo, cuando se analiza su línea de comando, el valor de la variable PATH
se toma del entorno actual .
Tendría que configurar la variable en el entorno donde se expande la variable. Puede hacer esto separándolo en dos pasos, como en
PATH=abc:$PATH; echo "$PATH"
que establecería PATH
en el entorno actual y luego ejecutaría echo "$PATH"
, o establecería la variable para un shell secundario, como en
PATH=abc:$PATH sh -c 'echo "$PATH"'
que establecería la variable PATH
dentro de sh -c
, pero no en el shell actual.
En su segundo ejemplo,
PATH=/mybin:$PATH which python
la utilidad which
probablemente dirá que python
se encuentra en /mybin
ya que modifica PATH
en su entorno. Observe cómo PATH
nunca se expande en el entorno actual aquí, sino internamente por which
.
Por cierto, which python
es mejor (más portátil )escritocommand -v python
(ver " ¿Por qué no usar "cuál"? ¿Qué usar entonces? " ).
Solo una breve reflexión sobre su título,donde dices "ENV
variable". La variable ENV
, incluso si esto no era lo que quería decir, resulta ser una variable de entorno que usan algunas implementaciones desh
(y algunos otros shells ). Si su valor es el nombre de un archivo, ese archivo se obtendrá antes de iniciar una sesión de shell interactiva. bash
tiene una variable BASH_ENV
que funciona de la misma manera, pero para shells no -interactivos.
El motivo es que la expansión de echo $PATH
ocurre antes de que se cree el entorno modificado.
Puede llamar a:
PATH=abc:$PATH env
para ver que el entorno para el comando de hecho se modifica.
Desde la expansión del argumento echo en
PATH=abc:$PATH echo $PATH
ocurre antes de configurar el nuevo entorno, debe dividir las cosas en dos comandos:
(PATH=abc:$PATH; echo $PATH)
hace lo que te gusta. El subshell ()es necesario para evitar que el entorno cambie para sobrevivir a la vida útil del comando echo
.