#!/bin/bash while IFS=: read name1 name2 name3 name4 #IFS是从文件读取内容时指定的分割符号,将a中的内容以:分开的部分分别赋值给相应变量. do echo $name1 '|' $name2 '|' $name3 '|' $name4 done <a #反引号与$()的功能是命令替换,将反引号或$()中的字符串当作命令来执行,但是反引号中不能继续有反引号,而$()可以有。 LS=`ls` echo $LS #单引号完全不解析命令,忽略所有特殊字符串,照字符串原样输出. LS='ls' echo $LS #双引号作用与单引号相似,区别在于它没有那么严格,在双引号中有3个特殊字符不能被忽略:$,\,`,即单引号会解释字符串的特殊意思,而单引号直接使用。 LS="ls" echo $LS #不过如果使用eval命令,会让双引号中的命令得到解释。 LS="ls" eval "$LS" set -- 1 2 3 4 #设置参数,与c的main中的2个参数一样。 while [ $# -gt 0 ] # $#代表参数总数 do echo $1 #输出第一个参数 shift 1 #将参数个数减1,并且都向1移动一位,也可以设置2,一次移动2位,相当与i--,i是参数总个数。 done #-gt大于 #-lt小于 #-ge大于等于 #-le小于等于 #-eq等于 #-ne不等于 #在脚本里面可以用$1,$2...来接受参数,但是还有另外一种方式可以接受参数,那就是getopts。 while getopts abc opt #./main.sh -a -b -c 就可以指定参数然后执行相关命令 do case $opt in a) echo "abcd" ;; b) echo "1234" ;; c) echo "ABCD" ;; *) echo "****" ;; esac done
时间: 2024-11-05 14:39:20