小白问题,空格的问题和参数的问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
jadeity
帖子: 689
注册时间: 2010-10-21 17:55

小白问题,空格的问题和参数的问题

#1

帖子 jadeity » 2012-01-20 15:25

#!/bin/sh
for i in *.osz
do
unzip $i -d $i|sed '/s/....$/'
done

1.unzip $i 但是文件名里有空格,unzip读不到文件。
2.$i |sed '/s/....$/, 这个如何做 -d 参数?
mimihu88
帖子: 552
注册时间: 2006-04-03 11:26

Re: 小白问题,空格的问题和参数的问题

#2

帖子 mimihu88 » 2012-01-20 15:45

加个双引号就可以读取含空格的文件名了
"$i"

代码: 全选

$sudo 折腾
sudo: 折腾: command not found
头像
jadeity
帖子: 689
注册时间: 2010-10-21 17:55

Re: 小白问题,空格的问题和参数的问题

#3

帖子 jadeity » 2012-01-20 16:46

#!/bin/sh
for i in *.osz
do
echo $i|sed 's/....$// ' >temp
d=$(cat temp)
echo $d
unzip "$i" -d "$d"
rm -rf temp
rm -rf "$i"
done

终于解决问题了,THX。
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 小白问题,空格的问题和参数的问题

#4

帖子 aerofox » 2012-01-25 11:40

代码: 全选

#!/bin/bash
for i in *.osz
do
    d=$(echo $i|sed 's/....$// ' )
    d="${i%f????}"        #如果上面的 .... 不是代表省略,而是确实的四个点,则可以用这条语句代替
    unzip "$i" -d "$d"
    rm -f "$i"
done 
回复