设为首页 加入收藏
"){print $1,$2 }'



6, 测试:如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假,则命令的Exit Status为1(注意与C语言的逻辑表示正好相反)。命令test或[的参数形式是相同的,只不过test命令不需要]参数。左方括号[确实是一个命令的名字,传给命令的各参数之间应该用空格隔开,比如,$VAR、-gt、3、]是[命令的四个参数。


:是一个特殊的命令,称为空命令,该命令不做任何事,但Exit Status总是真。


if以fi结尾


if [ -f /bin/bash ]
then echo "a file"
else echo "not a file"
fi
if :;then echo "always true"; fi



7,RANDOM在0--32767之间


8,echo什么都不加可以输出换行


9,#,@,*的含义:


$# :代表后接的参数个数 ;num_s=${#s[@]},num_s为数组s的参数个数;echo ${#arr[3]} // 获取字arr[3]的长度
$@ :代表 "$1" "$2" "$3" "$4" 之意,每個變數是獨立的(用雙引號括起 來); $* :代表『 "$1c$2c$3c$4" 』,其中 c 為分隔字元,預設為空白鍵, 所以 本例中代表 "$1 $2 $3 $4" 之意。


./123.sh one two three four



echo $0----./123.sh
echo $1----one
echo $2----two
echo $3----three
echo $#----4
echo $@----one two three four
echo $*----one two three four



10,数组


seq=(0 1 2 3 4 )



seq【0】为1


seq[1]=6赋值


echo ${seq[@]}0 6 2 3 4


echo ${seq[1]} 输出6



for j in ${seqrand[@]}
do
echo -n $j
done



输出0624


echo -n 去掉换行


TOP

Shell编程总结
2014-11-24 14:24:17 来源: 作者: 【 】 浏览:0
Tags:Shell 编程 总结

1,在双括号结构中,所有表达式可以像c语言一样,如:a++,b--等,所有变量可以不加入:“$”符号前缀。双括号结构 扩展了for,while,if条件测试运算


例子#((RANDOM%num_s))



for((j=1;j<=6;j++))
do
echo -n ${seqrand[j]}
done



2,将命令的值输出


`file ..`(倒引号)


$(file ..)


eva l file ..


#ftype=eva l file $1
#ftype=`file $1`
#ftype=$(file $1)



3,shift $1;;#shift 是去除$1,把$2变成$1


4,cat << CLOUD将到下一个CLOUD的所有中间内容输出到stdout


cat << CLOUD




CLOUD


5,sed和awk都可以实现替换


讲文本转换成html


sed -e 's/:/<\/td>

/g' -e 's/^/
/g' -e 's/$/<\/td><\/tr>/g' $1
awk 'BEGIN {FS=":";OFS="
"} gsub(/^/,"
") gsub(/$/,"
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Python:操作PostgreSQL数据库(使.. 下一篇Linux下Java程序的启动Shell脚本

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: