В моем скрипте bash мне нужно изменить текущий каталог на домашний каталог пользователя.
если я хочу перейти на foo home dir пользователя, из командной строки я могу сделать:
cd ~foo
Что отлично работает, однако, когда я делаю то же самое из скрипта , он говорит мне:
./bar.sh: line 4: cd: ~foo: No such file or directory
Швы, как будто это было бы тривиально, но это не работает. В чем здесь проблема? Нужно ли мне избегать "~" или пропущенных кавычек или чего-то еще?
Редактировать
когда я говорю пользователь Я не имею в виду текущий пользователь, который запускает скрипт, но в целом любой другой пользователь в системе
Редактировать
Вот скрипт:
#!/bin/bash
user="foo"
cd ~$user
, если имя пользователя жестко закодировано как
cd ~foo
это работает, но если оно находится в переменной user , то это не так. Что мне здесь не хватает?