В Bash использование"${array[@]}"
(или"$@"
)в правой части присваивания работает примерно так же, как${array[*]}
(или "$*"
):, оно объединяет элементы массива в одну строку, используя пробелы в качестве разделителей.(${array[*]}
("$*"
)использует первый символ (байт? )из IFS
. )Это также относится к аргументам export
, declare
,local
и т. д.
Тогда у вас есть a b c d e
в my_args
, и расширение без кавычек разделяется.
Если вам нужен массив, используйте массив:
foo() {
bar "$@"
}
bar() {
echo "number of args: $#";
}
foo a b 'c d e'
Или, если вам нужна строка, вероятно, лучше явно использовать "${array[*]}"
для ясности.
(FWIW, Bash не поддерживает экспорт массивов через среду[1] [2] )
Это действительно зависит от того, что вы загрузили, вы ничего не делили о архиве firefox, который вы скачали, но может быть только два случая,
1. Вы скачали исходный код.
В этом случае вам нужно будет сделать, скомпилировать, установить, запустить программу установки и т. д.
2. Вы скачали портативную версию.
В этом случае вы можете запустить его напрямую, как указано здесь.
https://support.mozilla.org/en-US/kb/install-firefox-linux
Firefox должен запуститься. Затем вы можете создать значок на рабочем столе для запуска этой команды.