我想获取一个本地文件并将其压缩到其他临时位置。 以下是我的代码,它给出了错误
path="/home/tft/Downloads/ie.js"
temp="/home/tft/Downloads/Temp"
name=$(basename "$path")
echo "$path"
echo "$name"
echo "$temp"
echo "$temp/$name.zip" #Its output is also weird!
zip -r -j "$temp/$name.zip" $path
获得以下输出:
/bin/bash test.sh
/home/tft/Downloads/ie.js
ie.js
/home/tft/Downloads/Temp
.zipjstft/Downloads/Temp
zip warning: name not matched: /home/tft/Downloads/ie.js
)zip . -i /home/tft/Downloads/ie.js -r -j /home/tft/Downloads/Temp
答案 0 :(得分:2)
您的脚本是DOS格式。首先将其转换为UNIX格式:
sed -i 's|\r||' yourscript.sh
或使用dos2unix
:
dos2unix yourscript.sh
您看到的错误消息是由于在值的末尾有一个额外的字符(回车\r
)。当文件的格式不是UNIX而DOS时,会发生这种情况,因为DOS的行结尾是\r\n
,其中UNIX只有\n
。