【发布时间】:2021-05-27 04:42:54
【问题描述】:
我正在尝试运行应该放在特定目录中的 bash 脚本。 问题是脚本不会进入最新的文件夹。
文件夹如下所示:
root@raspberry ~/jdownloader/logs # ls -lha
total 104K
drwxr-xr-x 9 root root 4.0K Nov 30 11:52 .
drwxr-xr-x 14 root root 4.0K Nov 30 11:52 ..
drwxr-xr-x 2 root root 4.0K Nov 30 11:18 1479843940152_Tue, Nov 22, 2016 20.45 +0100
drwxr-xr-x 2 root root 4.0K Nov 30 11:21 1480501204839_Wed, Nov 30, 2016 11.20 +0100
drwxr-xr-x 2 root root 4.0K Nov 30 11:22 1480501242752_Wed, Nov 30, 2016 11.20 +0100
drwxr-xr-x 2 root root 4.0K Nov 30 11:30 1480501308071_Wed, Nov 30, 2016 11.21 +0100
drwxr-xr-x 2 root root 4.0K Nov 30 11:56 1480503116574_Wed, Nov 30, 2016 11.51 +0100
drwxr-xr-x 3 root root 12K Nov 23 11:25 extracting
drwxr-xr-x 2 root root 64K Nov 30 11:22 updatehistory
我的脚本中的重要片段是:
#!/bin/bash
declare dir=/var/log/scriptlog/jdstate
declare dir2=~/jdownloader/logs
NewFolder=`ls -rt1 ~/jdownloader/logs -I extracting -I updatehistory | tail -1 > /var/log/scriptlog/jdstate/newfolder.log`
OutputNewFolder=`head $dir/newfolder.log -n 1`
cd\ "\"$dir2/$OutputeNewFolder\""
当我尝试运行脚本时,它会显示找不到目录的错误。
但是当我复制/粘贴它时,它会进入目录。
知道如何进入目录吗?
【问题讨论】:
-
为什么cd后面有反斜杠?你为什么要转义双引号?
-
我只是想在 cd 之后转义空格( ),但没有任何影响
-
我认为你有太多的转义,你不希望文字引号作为你的一部分
cd并且你不想逃避我不认为的空间。试试cd "$dir2/$OutputNewFolder"(另外,正确拼写OutputNewFolder——你还有一个额外的e)。另外,请参阅 U&L 网站上的 this related question -
感谢 Eric,我尝试了各种各样的东西,但忘记了最简单的尝试! :D