в функцию на баше отправляется параметр "путь к другому скрипту с тильдой", вида
~/PATH_TO_FILE/FILE
в функции происходит парсинг на путь и имя файла, при попытке перейти в каталог, выдается сообщение ошибки
если тут же копипастом вставить к ком. строку просмотр каталога 'ls -ld' - то каталог видится
если так же сделать cd - тоже все нормально
если вызывающий аргумент подрихтовать и тильду заменить на нормальный путь /home/$USER
то в функции переходит происходит нормально
func '~/PATH_TO_FILE/FILE' - error
func '/home/$USER/PATH_TO_FILE/FILE' - OK
если просто в терминале набрать переход с тильдой то все нормально:
cd ~/PATH_TO_FILE/
далее кусок функции и эхо вывод
#!/bin/sh
func()
{
SCRIPT=$(basename "$1")
SCRIPT_DIR=$(dirname "$1")
echo "
'$1'
'$SCRIPT_DIR'
"
# пробовал "оба варианта"
cd $SCRIPT_DIR
cd $(dirname "$1")
...
}
вызов функции
func '~/PATH_TO_FILE/FILE' - error
func '/home/$USER/PATH_TO_FILE/FILE' - OK
...
run_prc.sh: line 80: cd: ~/PATH_TO_FILE: No such file or directory
cd ~/PATH_TO_FILE - OK
...
менять путь - не катит
/bin/bash-3.1.17
/bin/bash-3.2.57
/bin/bash-4.3.30
slackware-12.2