Получение "Отказано в доступе" по имени и имени базы

Это все. Они просто не будут работать на меня. Что я сделал не так на этот раз?

    # nquo is: /home/bryan/renametest/C D/y z

    # script:
    dirn=dirname "$nquo"
    echo "dirn $dirn"
    bnam=basename "$nquo"
    echo "bnam $bnam"

Результат запуска:

    ./script3.sh: 208: /home/bryan/renametest/C D/y z: Permission denied
    dirn 
    ./script3.sh: 208: /home/bryan/renametest/C D/y z: Permission denied
    bnam 

1 ответ

Решение

Ваш скрипт пытается запустить файл с именем в $nquo сначала с переменной среды dirn установить значение dirname, а затем с переменной bnam установить значение basename, Так как это не исполняемый файл, вы получите сообщение об ошибке о невозможности выполнить файл.

Вы, вероятно, намеревались запустить команды для имени файла, для чего требуются либо обратные тики, либо (желательно) $(...) вокруг него:

dnam=$(dirname "$nquo")
bnam=$(basename "$nquo")
Другие вопросы по тегам