Я не можу зрозуміти, як префікс рядка (наприклад, "user1") за допомогою тильди (~), щоб створити ~user1
та розширити його до домашнього каталогу user1.
Ось що я маю зараз:
USER="user1"
ls ~${USER}
ls: cannot access ~user1: No such file or directory
~user1
не розширюється. Як я можу цього досягти?
редагувати
Це не працює:
$ cat test.sh
USER="user1"
ls $(~$USER)
$ sh -x test.sh
+ USER=user1
+ ~user1
test.sh: 1: ~user1: not found
+ ls
test.sh
Не використовуйте USER, це ваше ім'я. Натомість використовуйте великі регістри змінних.
—
ctrl-alt-delor
чому слід віддавати перевагу нижній регістр?
—
bernie
тому ви не перезаписуєте вбудовані змінні, такі як USER. USER містить ім'я поточного користувача, який виконує команду.
—
ctrl-alt-delor
так, але чи хочете ви їх вивчити, а потім слідкуйте за новими. З цієї причини прийнято мати всі локальні змінні в скриптах оболонки як малі регістри.
—
ctrl-alt-delor
/home/user1
- це не варіант?