Shell 遍历文件

遍历/home/zyl/Desktop/yourfolder下的所有文件,对每个文件执行一次当前目录下的yourprogram程序,并给程序传递两个参数(yourprogram通过main函数的两个参数分别获得传参的数量和具体值),filename和i/4的余数。filebrowse.sh代码如下:


 
 

#!/bin/bash

cd /home/zyl/Desktop/yourfolder

i=0

for filename in `ls`

do

 ./yourprogram $filename $(($i%4)) 

 i=$(($i+1))

done

(1) 符号#!用来告诉系统执行该脚本的程序。最好使用“!/bin/bash”而不是“!/bin/sh”,如果使用tc shell改为tcsh。
 
 

(2) 编写完filebrowse.sh后,文件要运行就必须有执行权限。 用ls -l filebrowse.sh 可以查看是否可执行。 如果该文件不可执行,要先执行语句 chmod +x filebrowse.sh 授予执行权限。

(3) 在该脚本所在目录下,输入 ./filebrowse.sh 即可执行该脚本。

(4) 在执行的过程中,遇到了问题:bash: ./t.sh:/bin/bash^M:损坏的解释器: 没有那个文件或目录   从网上搜索了一下,大致原因是: 这个问题大多数是因为你的脚本文件在windows下编辑过。windows下,每一行的结尾是\n\r,而在linux下文件的结尾是\n,那么你在windows下编辑过的 文件在linux下打开看的时候每一行的结尾就会多出来一个字符\r,用cat -A urfile时你可以看到这个\r字符被显示为^M.   

 这时候只需要删除这个字符就可以了。可以使用命令sed -i 's/\r$//' urfile。   

 还有个解决办法就是在Linux下重写该文件即可!



参考 http://hi.baidu.com/gaoisbest/item/5b2bba2c8a0ea60943634a2e

你可能感兴趣的:(c,windows,linux,shell,脚本,bash)