当前位置: 技术问答>linux和unix
关于shell的一个问题
来源: 互联网 发布时间:2016-04-14
本文导语: #!/bin/sh listdir() { dir=$1 files=`ls "$dir"` i=0 for file in "$files" do echo "$dir"/"$file" done } listdir /web 结果 /web/102.txt gen.sh guess.sh 我想问为什么不是 /web/102.txt /web/gen.sh /web/guess...
#!/bin/sh
listdir()
{
dir=$1
files=`ls "$dir"`
i=0
for file in "$files"
do
echo "$dir"/"$file"
done
}
listdir /web
结果
/web/102.txt
gen.sh
guess.sh
我想问为什么不是
/web/102.txt
/web/gen.sh
/web/guess.sh
程序那个地方有问题?请哪位大牛给看看!
listdir()
{
dir=$1
files=`ls "$dir"`
i=0
for file in "$files"
do
echo "$dir"/"$file"
done
}
listdir /web
结果
/web/102.txt
gen.sh
guess.sh
我想问为什么不是
/web/102.txt
/web/gen.sh
/web/guess.sh
程序那个地方有问题?请哪位大牛给看看!
|
for file in "$files"
改为
for file in $files
改为
for file in $files
|
加引号:里面的东西已经变成了一个整体,就你这个脚本而言,$files 这个变量里面的内容都变成了一个整体就是一个字符串了,这也是为什么运行的时候只出,一条/web/的原因。我也是弄了一下午才明白的。
|
//试一试将echo "$dir"/"$file"更改为:
echo ${dir}/${file}