диалоговое окно для пароля (менеджер паролей unix )исчез

Это определенно похоже на задачу x -y . Было бы полезно узнать, какова конечная цель этого, но:

  • Ваша переменная varна самом деле является массивом из-за синтаксиса var=(... )
    • Поскольку вы указываете все в скобках, вы добавляете все данные к одному элементу
    • Вы используете неправильный синтаксис для вызова массива (${var[@]}), что в этом примере не имеет большого значения, так как все в любом случае находится в одном элементе

Самая большая проблема, по-видимому, заключается в том, как логическое И цитируется и интерпретируется. Если вы не заключаете его в кавычки при добавлении в массив, оболочка попытается его оценить, а если вы его заключите в кавычки, он останется литеральной строкой, предотвращающей вычисление. Один из способов, которым я смог решить эту (за исключением использования eval), заключается в следующем:

script.sh

#!/bin/bash

bash -c "$(echo $@)"

$ tree
.
└── script.sh

0 directories, 1 file
$ cmd=(echo hello \&\& mkdir test)
$./script.sh "${cmd[@]}"
hello
$ tree
.
├── script.sh
└── test

1 directory, 1 file

0
05.04.2021, 19:39
1 ответ

Отсутствует пакет gtk2или gtk3

.
0
28.04.2021, 22:54

Теги

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