分页: 1 / 1
shell脚本求助
发表于 : 2013-05-04 11:06
由 zcf115
代码: 全选
#!/bin/bash
if [ "$#" -ne "0" ];then
echo "Error:Must no argument."
exit 1
fi
read -p "Please input the directory: " mp3dir
cd ${mp3dir:=/home/ubuntu}
mp3s=(`ls | grep mp3`)
if [ "${#mp3s[@]}" -eq "0" ];then
echo "Error:There is no mp3 in this directory."
exit 2
fi
echo ${#mp3s[@]}
for mp3 in "${mp3s[@]}";do
echo ${mp3/.*}
done
求助啊,我ubuntu目录下有诸如 a.mp3、b c.mp3(中间为空格)等好多mp3文件,脚本会将 b c.mp3 识别为两个文件,b、c.mp3,如何更改呢。
Re: shell脚本求助
发表于 : 2013-05-04 11:19
由 cnkilior
"$i"
Re: shell脚本求助
发表于 : 2013-05-04 12:47
由 cao627
代码: 全选
for mp3 in *.mp3;do
echo ${mp3/.*} ###我这边环境好像加不加双引号没区别.
done
用数组的话:
mp3s=(`ls | grep mp3`) 替换为 eval mp3s=(`ls -Q *.mp3`)
Re: shell脚本求助
发表于 : 2013-05-04 13:02
由 zcf115
主要是想用下数组,结果还用不了。
Sent from my Lenovo A710e using Tapatalk 2
Re: shell脚本求助
发表于 : 2013-05-04 13:06
由 cao627
zcf115 写了:主要是想用下数组,结果还用不了。
Sent from my Lenovo A710e using Tapatalk 2
用数组的话:
mp3s=(`ls | grep mp3`) 替换为 eval mp3s=(`ls -Q *.mp3`)
Re: shell脚本求助
发表于 : 2013-05-04 13:35
由 zcf115
好的哦。我试下。
Sent from my Lenovo A710e using Tapatalk 2
Re: shell脚本求助
发表于 : 2013-05-04 17:01
由 zcf115
行了。
Sent from my Lenovo A710e using Tapatalk 2
Re: shell脚本求助
发表于 : 2013-05-05 11:17
由 zcf115
不过为啥换种方法就行了呢。
Sent from my Lenovo A710e using Tapatalk 2
Re: shell脚本求助
发表于 : 2013-05-05 20:52
由 aerofox
zcf115 写了:不过为啥换种方法就行了呢。
因为 ls 帮你加引号了。
不知你编写这个脚本的目的是什么,是为了学习还是解决问题。为了学语法没什么可说的,为了解决问题的话,没必要弄得这么复杂。cd 命令之后直接 for 循环就可以了:
代码: 全选
for mp3 in *.mp3; do
echo "${mp3/.*}"
done
Re: shell脚本求助
发表于 : 2013-05-05 23:34
由 zcf115
主要是想试下数组和字符串删除的功能。
Sent from my Lenovo A710e using Tapatalk 2
Re: shell脚本求助
发表于 : 2013-05-06 6:17
由 aerofox
zcf115 写了:主要是想试下数组和字符串删除的功能。
代码: 全选
mp3s=( *.mp3 )
for mp3 in "${mp3s[@]}";do
echo "${mp3/.*}"
done