我想写一个 bash 脚本,可以根据不同的压缩格式来处理压缩文件。测试的时候,永远只能跳到第一个 if block 里。请问这个脚本有什么问题呢?
fname=$1
params=$@
ext=${fname##*.}
echo "file extension is $ext";
if [ "$ext"="gz" ]
then
echo "tar xzvf $params"
tar xzvf $params
exit 0
elif [ "$ext"="xz" ]
then
echo "tar xvjf $params"
tar xvj $params
exit 0
elif [ "$ext"='bz2' ]
then
echo "tar xvjf $params"
tar xvjf $params
exit 0
else
echo "could not extract"
exit 1
fi
1
Busy 2015 年 11 月 5 日
你这是一次性解压一个文件夹内的所有压缩包?
if ... fi 执行一次就结束了 你应该循环的对每一个压缩包执行解压操作, for ... in 比较合适 |
2
Busy 2015 年 11 月 5 日
用 for in
然后每一次循环都用 case in 来匹配 |
3
yangg 2015 年 11 月 5 日
|
4
lululau 2015 年 11 月 5 日 等号两边加空格
|
5
sinxccc 2015 年 11 月 5 日 via iPhone tar xf <filename>
虽然好像有点跑题… |
6
lhbc 2015 年 11 月 5 日 via Android tar axf 就可以了,自动识别文件。哈哈哈
|