Bash-获取用户输入的目录

问题描述 投票:0回答:1

在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"

我在做什么错?

linux bash
1个回答
2
投票

正如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"

© www.soinside.com 2019 - 2024. All rights reserved.