分页: 1 / 1

bash编程,求解

发表于 : 2012-09-13 21:03
顽劣书生
照着书上敲的,运行不了,标注的地方,看不懂,求指教
#!/bin/bash
if [ $# = 0 ]
then
directory="."
elif [ $# != 1 ]
then
echo "Usage:$0 [directory name]"
exit 1
elif [ ! -d "$1" ]
then
echo "Usage: $0 [directory name]"
exit 1
else
directory="$1"
fi
sum=0
file_count='ls $directory | wc -w' #看不懂
if [ $file_count -eq 0 ]
then
echo "$direcotry : Empty directory"
exit 0
fi
ls "$directory" | more | #看不懂
while read file
do
file="$directory"/"$file"
if [ -f "$file"]
then
set - 'ls -l $file'
sum=`expr $sum + $5`
fi
if [ "$file_count" -gt 1 ]
then
file_count=`expr $file_count - 1`
else
if [ "$directory" = "."]
then
directory="your current directory"
fi
echo "$directory $sum"
fi
done
exit 0

Re: bash编程,求解

发表于 : 2012-09-13 21:10
枫叶饭团

代码: 全选

file_count=`ls $directory | wc -w` 
这个,不是'而是`,反引号。意思是这个目录的数量

代码: 全选

ls "$directory" | more |
这个是把ls的结果传给下面的while read,脑残

Re: bash编程,求解

发表于 : 2012-09-13 21:31
顽劣书生
枫叶饭团 写了:

代码: 全选

file_count=`ls $directory | wc -w` 
这个,不是'而是`,反引号。意思是这个目录的数量

代码: 全选

ls "$directory" | more |
这个是把ls的结果传给下面的while read,脑残
没必要以贬低他人来提升自己吧,即使,你真的很强

Re: bash编程,求解

发表于 : 2012-09-13 21:33
枫叶饭团
我说的脑残是指写这个语句的人,你这个是你写的?

Re: bash编程,求解

发表于 : 2012-09-13 21:38
顽劣书生
枫叶饭团 写了:我说的脑残是指写这个语句的人,你这个是你写的?
linux教程 译本,非常感谢您

Re: bash编程,求解

发表于 : 2012-09-14 19:51
aerofox
ls 管道到 while 已经属于不太好的做法了,中间加一个 more 更是变态。