Да, существуют «невидимые -» символы конфигурации, которые устанавливаются операторами select
, прикрепленными к другим записям конфигурации. Например, DRM_TTM
выбирается драйверами графического процессора, которым это необходимо; это три состояния, потому что опции, которые зависят от него, сами являются тремя состояниями.
Это кратко описано в документации по языку kconfig
; запись на select
говорит
In general use select only for non-visible symbols (no prompts anywhere) and for symbols with no dependencies. That will limit the usefulness but on the other hand avoid the illegal configurations all over.
Запись конфигурации невидима, если у нее нет подсказки либо после ее типа, либо с использованием явной директивы prompt
. Чтобы сделать запись конфигурации DRM_TTM
видимой, дайте ей подсказку:
config DRM_TTM
tristate "TTM"
или
config DRM_TTM
tristate
prompt "TTM"
Итак, я опубликовал фрагмент своей проблемы. Тем не менее, @alecxs был прав в деньгах. Должно быть, у меня было что-то со скрытым символом или «пробелом», что вызывало проблемы. Я вошел и удалил все «пустые» строки, убедился, что все было удалено после последнего видимого символа в каждой строке. Потом запустил скрипт, и все заработало. Еще раз спасибо @alecxs
Вам нужно сделать оболочку интерактивной и использовать history -p
для интерпретации ! символы:
#!/bin/bash -i
eval $(history -p <your statement involving ! expansion>)
И перед вызовом скрипта оболочки нужно сохранить историю:
history -a
Пример:
cat jt
#!/bin/bash -i
eval `history -p !df`
df /; history -a
./jt