在bash中,我要求用户输入文件的绝对路径,例如dir/to/the/file.txt
,然后转到该目录并运行一些命令。但是我无法进入提供的目录。
我已经尝试过以下脚本,并且如果它没有引发错误,它只会输出一个“”。
#!/bin/bash
read -p "Please Enter Path:" $r1
parent=$(dirname "${r1}")
echo "${scriptdir}"
#!/bin/bash
read -p "Please Enter Path:" $r1
parent=$(readlink -f "$(dirname "$r1")")
cd $parent
#!/bin/bash
read -p "Please Enter Path:" $r1
parent="$(basename "$(dirname "$r1")")"
echo "$parent"
我在做什么错?
正如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"