0

我有一个 Bash 脚本:

src="/home/xubuntu/Documents"
mkdir -p "$src/folder1"
src="$src/folder1"

# Do something

printf "SRC IS: $src\n"
src=`cd ..` # RETURN TO PARENT DIRECTORY
printf "SRC IS: $src\n"

基本上我想创建一个新文件夹,然后在文件夹内做一些事情,完成后我想返回到父目录Documents。然而,由于某种原因,src=`cd ..`没有返回任何内容。

SRC IS: /home/xubuntu/Documents
SRC IS: 

任何想法为什么?

4

3 回答 3

3

您可以访问父级:

src=$(cd ..&&pwd)

好多了,而且不使用cd

src=${src%/*} # src is the parent directory
于 2013-05-28T15:30:58.917 回答
2

cd 只是改变目录,而不是显示它;这是用 pwd 完成的;IE

cd ..
src=`pwd` 

#or slightly faster
src=$PWD
于 2013-05-28T15:27:42.907 回答
0

发生的事情是您将命令“cd ..”的输出分配给 src(正如您在命令行上执行此操作时所看到的那样),这没什么。使用 readlink -f 来完成你需要的。

你想要做的是:

src="/home/xubuntu/Documents"
mkdir -p "$src/folder1"
src="$src/folder1"

# Do something

printf "SRC IS: $src\n"
src=`readlink -f $src/..` # RETURN TO PARENT DIRECTORY
printf "SRC IS: $src\n"

我假设这就是你想要做的,返回它的父文件夹的 src。

于 2013-05-28T15:46:58.680 回答