Нужна помощь со скриптом, работает в командной строке, но не в скрипте

Да, существуют «невидимые -» символы конфигурации, которые устанавливаются операторами 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"

1
17.07.2020, 09:28
2 ответа

Итак, я опубликовал фрагмент своей проблемы. Тем не менее, @alecxs был прав в деньгах. Должно быть, у меня было что-то со скрытым символом или «пробелом», что вызывало проблемы. Я вошел и удалил все «пустые» строки, убедился, что все было удалено после последнего видимого символа в каждой строке. Потом запустил скрипт, и все заработало. Еще раз спасибо @alecxs

0
18.03.2021, 23:19

Вам нужно сделать оболочку интерактивной и использовать 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
1
18.03.2021, 23:19

Теги

Похожие вопросы