Расширение переменной Bash и присвоения

#!/bin/bash
echo "hello world"
$a='~'
$b='$a/nlu'
echo $b

Я добрался

./test.sh: line 3: =~: command not found
./test.sh: line 4: =$a/nlu: No such file or directory

как ошибки, какова проблема?

2
задан 23 January 2018 в 00:45

1 ответ

Используйте это вместо этого:

#!/bin/bash

echo "hello world"
a='~'
b="$a/nlu"
echo $b
  • Не использовать $ для присвоений.

  • b='$a/nlu' - Выражения как $a не расширяйтесь в одинарных кавычках, используйте двойные кавычки для этого.

  • Как указано @steeldirver ./test.sh: line 4: =$a/nlu: No such file or directory результат $b расширение ни до чего, поскольку присвоение не было правильно сделано, и затем bash попытки выполниться =$a/nlu как команда. Точно то же для ./test.sh: line 3: =~: command not found применяется.

Для будущего ошибочного использования shellcheck от одноименного пакета или его интерактивной версии.

6
ответ дан 2 December 2019 в 01:42

Другие вопросы по тегам:

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