fish: if error: `[: отсутствует аргумент в индексе 2`

Вы должны использовать JSON.parse, посмотрите https://www.w3schools.com/js/js_json_parse.asp

const obj = JSON.parse('{ "name":"John", "age":30, "city":"New York"}')
console.log(obj.name)
console.log(obj.age)

1
задан tukusejssirs 24 March 2019 в 07:42
поделиться

1 ответ

Вам нужно заключить переменную в кавычки и заменить == на = (так как первая является башизмом).

Проблема в том, что, как и в bash, пустая переменная удаляется до того, как она достигает команды, поэтому [ (это просто другое имя для test) получает свои аргументы, например:

[110 ]

, которое не является допустимым выражением.

Итак, это должно быть

if [ "$prompt_hostname" = 'remote-host' ]

или

if test "$prompt_hostname" = remote-host

(обратите внимание, что цитирование литеральной строки не нужно, но безвредно в обоих случаях - ничего не меняет, потому что эта строка не иметь частей, которые были бы расширены - нет $, нет *, нет (), ....)

0
ответ дан faho 24 March 2019 в 07:42
поделиться
Другие вопросы по тегам:

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