linux shell 編程 8 for 循環刪除文件

實例:shell

#!/bin/bash數組

#  delete  importnewhouse data  logs shellbash

cd /www/autopublish.news.fang.com/auto_publishnews/logs/網站

for((i=1;i<100;i++));spa

doorm

n="20151106importnewhousedata.log.$i"ip

sudo rm $nci

if [ 0 -eq $? ]
字符串

then
string

echo "delete  $i  ok !"

else

echo "delete $i failed"

fi

done


**************  for 循環  *************

來自網站

一、 for((i=1;i<=10;i++));do echo $(expr $i \* 4);done
二、在shell中經常使用的是 for i in $(seq 10)  /fro i in $(seq 1 10)
三、for i in `ls`

四、for i in ${arr[@]}   
五、for i in $* ; do 
六、for File in /proc/sys/net/ipv4/conf/*/accept_redirects; do 
七、for i in f1 f2 f3 ;do 
八、for i in *.txt 
九、for i in $(ls *.txt) 
for in語句與` `和$( )合用,利用` `或$( )的將多行合爲一行的缺陷,實際是合爲一個字符串數組
十、LIST="rootfs usr data data2" 
for d in $LIST; do 
    用for in語句自動對字符串按空格遍歷的特性,對多個目錄遍歷 
十一、for i in {1..10}
十二、for i in stringchar {1..10}
1三、awk 'BEGIN{for(i=1; i<=10; i++) print i}'


******************  seq 的用法**************

用於產生從某個數到另一個數之間的全部整數
  例一:
  # seq 1 10
  結果是1 2 3 4 5 6 7 8 9 10
  例二:
  #!/bin/bash
  for i in `seq 1 10`;
  do
  echo $i;
  done
  或者用
  for i in $(seq 1 10)
  也能夠

seq
-f, --format=FORMAT      use printf style floating-point FORMAT (default: %g)
-s, --separator=STRING   use STRING to separate numbers (default: /n)
-w, --equal-width        equalize width by padding with leading zeroes

-f 選項   指定格式
#seq -f"%3g" 9 11
9
10
11
% 後面指定數字的位數 默認是"%g", 
"%3g"那麼數字位數不足部分是空格 
#sed -f"%03g" 9 11 這樣的話數字位數不足部分是0 
% 前面制定字符串
seq -f "str%03g" 9 11
str009
str010
str011

-w 指定輸出數字同寬   不能和-f一塊兒用 
seq -w -f"str%03g" 9 11
seq: format string may not be specified when printing equal width strings
seq -w 98 101
098
099
100
101
輸出是同寬的

-s 指定分隔符 默認是回車
seq -s" " -f"str%03g" 9 11
str009 str010 str011
要指定/t 作爲分隔符號
seq -s"`echo -e "/t"`" 9 11

指定/n/n做爲分隔符號seq -s"`echo -e "/n/n"`" 9 1119293949596979899910911獲得的是個錯誤結果不過通常也沒有這個必要 它默認的就是回車做爲分隔符

相關文章
相關標籤/搜索