红联Linux门户
Linux帮助

怎么实现ls的命令

发布时间:2011-09-30 20:43:49来源:红联作者:zhou363134970
for file in *.* -o .*
do
echo $file

done

在这个基础上怎么修改 使得显示类似于ls命令呢
例如在文件名字间加入 \t
还有这个小代码会在文件名字间显示 -o 怎么去掉
以及怎么显示其他文件下的file呢?

求大牛指点!
文章评论

共有 7 条评论

  1. njp1949 于 2011-10-09 14:45:08发表:

    看不懂

  2. 相思爱文 于 2011-10-03 18:13:06发表:

    for variable in variable1 variable2 .....
    是对变量variable依次赋值variable1 variable2 .....
    在for file in * .*里,是对变量file依次赋值*和.*
    *是万用字符,代表一个或多个字符(或数字)
    在当前目录下执行,就和在shell中执行一样。
    这种写法不知是不否规范,我认为用
    for file `ls -A`
    更好些

  3. zhou363134970 于 2011-10-03 17:39:35发表:

  4. zhou363134970 于 2011-10-03 15:48:58发表:

    这个-o 的问题我知道了
    再问个问题啊

    file匹配 * .* 然后echo $file
    为什么file是在当前目录中与文件名进行匹配的呢??
    为什么没匹配一些其他的局部变量和环境变量?
    初学者,提的问题很初级了,希望知道的能解惑啊!

  5. 爱与不爱 于 2011-10-03 10:44:26发表:

    回帖是一种美德。

  6. 相思爱文 于 2011-10-01 19:36:58发表:

    楼主的目的是什么?

    想完成ls命令效果,用c语言较好。
    想要学习script,先把教程中的例子试完。
    for file in * -o .*
    这句的意思是,file变量依次赋值“ *” “ -o” “ .*” 这三个东东,进行循环。当然会显示啦。

    如果再加上
    for file in * -o .* -a -b -c -d -e -f
    或其他以空格分隔的字符,也都会显示

    在这里,-o被当作字符串看待。

  7. zhou363134970 于 2011-09-30 21:31:24发表:

    for file in * -o .*
    do
    echo -ne $file "\t"
    done

    可以显示所有文件了 但 -o 还是会出现
    另外 当显示的最右端空间不够时 会将$file 截开 怎么避免?
    其他文件夹下的文件 怎么显示呢