Как отметил KamilCuk, при выполнении команды read
он должен поместить указанное значение в переменную r1
. Это сделано без $
.
Итак:
read -p "Please Enter Path: " r1
вместо:
read -p "Please Enter Path: " $r1
Кроме того, при печати переменной скобки не требуются:
echo "$parent"
вместо
echo "${parent}"
Если применить это исправлено, первый скрипт должен работать:
#!/bin/bash
read -p "Please Enter Path:" r1
parent=$(dirname "$r1")
cd "$parent"
РЕДАКТИРОВАТЬ: пользователь Adho c добавил хорошее замечание: если мы добавим Параметр -r
для команды read
, обратная косая черта не будет работать как escape-символы. Это изменит скрипт следующим образом:
#!/bin/bash
read -p "Please Enter Path:" -r r1
parent=$(dirname "$r1")
cd "$parent"