我是bash的新手,我正在尝试创建一个应该在给定目录中找到存档的脚本。 $1
是存档的名称。
当给定路径为./1/ar.tgz
时,脚本可以正常工作。但当路径为../data 1/01_text.tgz
时,我遇到以下问题:
dirname:额外的操作数" 1 / 01_text.tgz"
然后No such file or directory
。
这是我的代码片段:
VAR=$1
DIR=$(dirname ${VAR})
cd $DIR
我做错了什么?
答案 0 :(得分:1)
这个空间导致了问题:cd $DIR
扩展为cd ../data 1/01_text.tgz
而cd
不知道如何制作第三个"参数"。在目录周围添加引号:cd "$DIR"
。
答案 1 :(得分:1)
艾哈迈德的答案是对的,但您还需要将VAR
括在双引号中。正确的代码片段是:
VAR=$1
DIR=$(dirname "$VAR")
cd "$DIR"