В этой строке кода есть две проблемы:
step1=$(cd public_html/$domain)
Во-первых, cd
не производит никакого вывода (кроме случаев, когда вызывается с -
в качестве аргумента, но это не так). Соответственно, значение $step1
всегда будет пустой строкой.
Во-вторых, что более важно, $()
производит выполнение команды во вспомогательной оболочке. Это означает, что оболочка, запускающая ваш сценарий, запускает новую оболочку (клон самой себя). Эта новая оболочка запускает cd ...
и завершает работу. Это никак не влияет на оболочку, которая запускает сценарий.
Чтобы изменить текущий каталог оболочки, которая запускает сценарий, просто используйте cd
обычно:
cd public_html/$domain
Если вы необходимо получить текущий каталог после того, как вы изменили его, вы можете запустить pwd
и записать его вывод:
step1=$(pwd)
Extra
domain=$(echo ${domaincom/.com})
Нет необходимо echo
значение только для захвата его вывода. Вы можете просто присвоить значение:
domain=${domaincom/.com}