我想写一个 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
Havee 2015-11-05 15:43:33 +08:00
你这是一次性解压一个文件夹内的所有压缩包?
if ... fi 执行一次就结束了 你应该循环的对每一个压缩包执行解压操作, for ... in 比较合适 |
2
Havee 2015-11-05 15:46:37 +08:00
用 for in
然后每一次循环都用 case in 来匹配 |
3
yangg 2015-11-05 15:51:48 +08:00
|
4
lululau 2015-11-05 16:05:05 +08:00 2
等号两边加空格
|
5
sinxccc 2015-11-05 16:08:38 +08:00 via iPhone 1
tar xf <filename>
虽然好像有点跑题… |
6
lhbc 2015-11-05 16:27:50 +08:00 via Android 1
tar axf 就可以了,自动识别文件。哈哈哈
|