Chinaunix首页 | 论坛 | 博客
  • 博客访问: 137755
  • 博文数量: 52
  • 博客积分: 203
  • 博客等级: 入伍新兵
  • 技术积分: 310
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-20 10:43
文章分类

全部博文(52)

文章存档

2015年(2)

2012年(11)

2011年(39)

分类: LINUX

2012-11-15 11:08:23

#!/bin/bash

#loop for...do...done

#style 1  for (( 初始值; 限制值; 步长值 ))
# do
#    xxx
# done


for ((i=0;i<10;i++))
do
    echo "thisis$i"
done

#you also can do this in one line;
for ((i=0;i<10;i++)); do echo "thisis$i";done


#sytle 2
#for var in con1 con2 con3 ...
#do
#     xxx
#done
 
a=`ls`

for i in $a
do
    echo $i
done

#for i in $a; do echo $i; echo "tt"; done;


for i in {1..10};do echo $i ;done;
for File in 1 2 3 4 5;do echo $File ;done;



for name [ [ in [ word ... ] ] ; ] do list ; done
              The list of words following in is expanded, generating a list of items.  The variable name is set to each element of this list in turn, and
              list  is  executed each time.  If the in word is omitted, the for command executes list once for each positional parameter that is set (see
              PARAMETERS below).  The return status is the exit status of the last command that executes.  If the expansion of  the  items  following  in
              results in an empty list, no commands are executed, and the return status is 0.

       for (( expr1 ; expr2 ; expr3 )) ; do list ; done
              First,  the  arithmetic  expression  expr1 is evaluated according to the rules described below under ARITHMETIC EVALUATION.  The arithmetic
              expression expr2 is then evaluated repeatedly until it evaluates to zero.  Each time expr2 evaluates to a non-zero value, list is  executed
              and  the  arithmetic expression expr3 is evaluated.  If any expression is omitted, it behaves as if it evaluates to 1.  The return value is
              the exit status of the last command in list that is executed, or false if any of the expressions is invalid.

       select name [ in word ] ; do list ; done
              The list of words following in is expanded, generating a list of items.  The set of expanded words is printed on the standard  error,  each
              preceded  by  a  number.   If the in word is omitted, the positional parameters are printed (see PARAMETERS below).  The PS3 prompt is then
              displayed and a line read from the standard input.  If the line consists of a number corresponding to one of the displayed words, then  the
              value of name is set to that word.  If the line is empty, the words and prompt are displayed again.  If EOF is read, the command completes.
              Any other value read causes name to be set to null.  The line read is saved in the variable REPLY.  The list is executed after each  selec‐
              tion  until  a break command is executed.  The exit status of select is the exit status of the last command executed in list, or zero if no
              commands were executed.

       case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac
              A case command first expands word, and tries to match it against each pattern in turn, using the same matching rules as for pathname expan‐
              sion  (see  Pathname  Expansion below).  The word is expanded using tilde expansion, parameter and variable expansion, arithmetic substitu‐
              tion, command substitution, process substitution and quote removal.  Each pattern examined is expanded using tilde expansion, parameter and
              variable  expansion,  arithmetic substitution, command substitution, and process substitution.  If the shell option nocasematch is enabled,
              the match is performed without regard to the case of alphabetic characters.  When a match is found, the corresponding list is executed.  If
              the  ;;  operator  is used, no subsequent matches are attempted after the first pattern match.  Using ;& in place of ;; causes execution to
              continue with the list associated with the next set of patterns.  Using ;;& in place of ;; causes the shell to test the next  pattern  list
              in  the  statement,  if any, and execute any associated list on a successful match.  The exit status is zero if no pattern matches.  Other‐
              wise, it is the exit status of the last command executed in list.

       if list; then list; [ elif list; then list; ] ... [ else list; ] fi
              The if list is executed.  If its exit status is zero, the then list is executed.  Otherwise, each elif list is executed in turn, and if its
              exit  status is zero, the corresponding then list is executed and the command completes.  Otherwise, the else list is executed, if present.
              The exit status is the exit status of the last command executed, or zero if no condition tested true.

       while list; do list; done
       until list; do list; done
              The while command continuously executes the do list as long as the last command in list returns an exit status of zero.  The until  command
              is  identical  to the while command, except that the test is negated; the do list is executed as long as the last command in list returns a
              non-zero exit status.  The exit status of the while and until commands is the exit status of the last do list command executed, or zero  if
              none was executed.













    CONDITIONAL EXPRESSIONS
       Conditional expressions are used by the [[ compound command and the test and [ builtin commands to test file attributes  and  perform  string  and
       arithmetic  comparisons.  Expressions are formed from the following unary or binary primaries.  If any file argument to one of the primaries is of
       the form /dev/fd/n, then file descriptor n is checked.  If the file argument to one of  the  primaries  is  one  of  /dev/stdin,  /dev/stdout,  or
       /dev/stderr, file descriptor 0, 1, or 2, respectively, is checked.

       Unless  otherwise  specified,  primaries  that  operate on files follow symbolic links and operate on the target of the link, rather than the link
       itself.

       When used with [[, The < and > operators sort lexicographically using the current locale.

       See the description of the test builtin command (section SHELL BUILTIN COMMANDS below) for the handling of parameters (i.e.  missing parameters).

       -a file
              True if file exists.
       -b file
              True if file exists and is a block special file.
       -c file
              True if file exists and is a character special file.
       -d file
              True if file exists and is a directory.
       -e file
              True if file exists.
       -f file
              True if file exists and is a regular file.
       -g file
              True if file exists and is set-group-id.
       -h file
              True if file exists and is a symbolic link.
       -k file
              True if file exists and its ``sticky'' bit is set.
       -p file
              True if file exists and is a named pipe (FIFO).
       -r file
              True if file exists and is readable.
       -s file
              True if file exists and has a size greater than zero.
       -t fd  True if file descriptor fd is open and refers to a terminal.
        -u file
              True if file exists and its set-user-id bit is set.
       -w file
              True if file exists and is writable.
       -x file
              True if file exists and is executable.
       -O file
              True if file exists and is owned by the effective user id.
       -G file
              True if file exists and is owned by the effective group id.
       -L file
              True if file exists and is a symbolic link.
       -S file
              True if file exists and is a socket.
       -N file
              True if file exists and has been modified since it was last read.
       file1 -nt file2
              True if file1 is newer (according to modification date) than file2, or if file1 exists and file2 does not.
       file1 -ot file2
              True if file1 is older than file2, or if file2 exists and file1 does not.
       file1 -ef file2
              True if file1 and file2 refer to the same device and inode numbers.
       -o optname
              True if shell option optname is enabled.  See the list of options under the description of the -o option to the set builtin below.
       -z string
              True if the length of string is zero.
       string
       -n string
              True if the length of string is non-zero.

       string1 == string2
       string1 = string2
              True if the strings are equal.  = should be used with the test command for POSIX conformance.

       string1 != string2
              True if the strings are not equal.

       string1 < string2
              True if string1 sorts before string2 lexicographically.

       string1 > string2
              True if string1 sorts after string2 lexicographically.

       arg1 OP arg2
              OP is one of -eq, -ne, -lt, -le, -gt, or -ge.  These arithmetic binary operators return true if arg1 is equal to, not equal to, less  than,
              less than or equal to, greater than, or greater than or equal to arg2, respectively.  Arg1 and arg2 may be positive or negative integers.

阅读(1086) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~