Не уверен, насколько это будет полезно, но на моем Ubuntu это на самом деле работает, как и ожидалось:
jhartman@wieloryb:~$ bash /tmp/xxx
/src/nginx
nginx-1.13.11
/src/nginx/nginx-1.13.11
Это звучит так невероятно, что в Bash есть какие-то ошибки вокруг переменных.
Как вы писали, размещенный вами фрагмент - всего лишь отрывок.Возможно, где-то во фрагменте, не размещенном здесь, есть операция с вашей переменной $ code.
Все, что я могу предложить, это запустить ее в режиме отладки, используя bash -x <script>
, например:
jhartman@wieloryb:~$ bash -x /tmp/xxx
+ home=/home/michael
+ code=/src/nginx
+ NGINX=nginx-1.13.11
+ nginxsrc=/src/nginx/nginx-1.13.11
+ echo /src/nginx
/src/nginx
+ echo nginx-1.13.11
nginx-1.13.11
+ echo /src/nginx/nginx-1.13.11
/src/nginx/nginx-1.13.11
Этодолжен помочь вам сузить, что происходит.
Удачи и наилучшие пожелания, Jarek