bash编程,求解

sh/bash/dash/ksh/zsh等Shell脚本
回复
顽劣书生
帖子: 18
注册时间: 2012-03-02 12:59

bash编程,求解

#1

帖子 顽劣书生 » 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
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: bash编程,求解

#2

帖子 枫叶饭团 » 2012-09-13 21:10

代码: 全选

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

代码: 全选

ls "$directory" | more |
这个是把ls的结果传给下面的while read,脑残
顽劣书生
帖子: 18
注册时间: 2012-03-02 12:59

Re: bash编程,求解

#3

帖子 顽劣书生 » 2012-09-13 21:31

枫叶饭团 写了:

代码: 全选

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

代码: 全选

ls "$directory" | more |
这个是把ls的结果传给下面的while read,脑残
没必要以贬低他人来提升自己吧,即使,你真的很强
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: bash编程,求解

#4

帖子 枫叶饭团 » 2012-09-13 21:33

我说的脑残是指写这个语句的人,你这个是你写的?
顽劣书生
帖子: 18
注册时间: 2012-03-02 12:59

Re: bash编程,求解

#5

帖子 顽劣书生 » 2012-09-13 21:38

枫叶饭团 写了:我说的脑残是指写这个语句的人,你这个是你写的?
linux教程 译本,非常感谢您
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: bash编程,求解

#6

帖子 aerofox » 2012-09-14 19:51

ls 管道到 while 已经属于不太好的做法了,中间加一个 more 更是变态。
回复