Я пытаюсь определить функцию Баша возвращающейся порядковым идентификатор , что я могу получить доступ непосредственно с помощью Баша подстановки:Баш подмен вызова, что увеличивает переменную
#!/bin/bash
getId() {
echo "$x"
x=$((x+1))
}
x=0
echo "id1: $(getId)"
echo "id2: $(getId)"
Однако переменный не увеличиваются, и я не могу понять почему.
id1: 0 id2: 0
Пожалуйста, кто-то должен объяснить такое поведение?
Каждый '$()' является суб-оболочки, так присвоений в родительской оболочке не происходит. –
Ответ [здесь] (http://unix.stackexchange.com/a/124904/67134) может быть полезен здесь, но я не уверен в этом. –
Я также думал, что это вызов подкласса, но я не могу установить его с помощью strace. Тем не менее, результат является абсолютно одинаковым. Благодарю. – user3149355