linux - Bash 脚本在相对路径目录中找不到文件

标签 linux bash

<分区>

我是 bash 的新手,我正在尝试创建一个应该在给定目录中找到存档的脚本。 $1 是存档的名称。

当给定路径为 ./1/ar.tgz 时,脚本可以运行。但是当路径是 ../data 1/01_text.tgz 我有以下问题:

dirname: extra operand "1/01_text.tgz"

然后是 No such file or directory

这是我的代码片段:

VAR=$1
DIR=$(dirname ${VAR})
cd $DIR

我做错了什么?

最佳答案

Ahmed 的回答是正确的,但您还需要将 VAR 括在双引号中。正确的代码片段是:

VAR=$1
DIR=$(dirname "$VAR")
cd "$DIR"

关于linux - Bash 脚本在相对路径目录中找不到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26509926/

相关文章:

C++ fork() 和 execv() 问题

在C中创建两个子进程并一个接一个地执行它们

linux - 为具有开源 Linux 支持的 RFID 读取器开发软件 : Which direction to go, 硬件/系统方面?

javascript - 监听外部事件。 Bash 到 NodeJS 的桥梁

bash - 从文件中选择随机行

linux - 如何计算具有特定条目的文件数?

linux - 使用远程 gdbserver 启动 ddd

bash - 此请求的币安 REST API 时间戳在 recvWindow 之外

bash - 如何在 bash 脚本中连接变量和字符串

python - 如何使用 | 调用多个 bash 函数在 python