标签:style io 使用 ar for 文件 数据 sp cti
bash(sh,pdsh扩充): GNU Bourne-Again Shell
sh:Bourne Shell,编程优秀,用户交互不便。
csh:C Shell,编程接口不如sh,用户界面友好,与C语言语法相似。 ——>tcsh
ksh:Korn Shell,集成了sh和csh的优点,并完全兼容sh。 ——>pdsh(Public Domain Korn Shell)
zsh
变量定义:不含保留字(例如“-,*”等),不含空格。
变量的引用:赋值,for循环前不需带$;其他情况引用变量需要带"$"(例如,打印,运算等)。
数据类型:shell变量没有数据类型。
shell语句:=左右不能有空格;shell语句不以”;“结尾。
1)let:双引号
例如,let "x=$x+1"
2)expr:`,空格,特殊字符前需要使用转义符号\
例如,x=`expr $x + 4`,x=`expr $x \* 4`
【PS】不能进行浮点数运算,没有浮点数数据类型。
【例子:算术运算,字符拼接,shell的无数据类型】
#!/bin/bash
x=2007
let "x=$x+1"
echo $x
x=`expr $x + 4`
echo $x
echo $(expr $x / 2)
x=‘Olmpic‘$x
echo x=$x
y=12
y=`expr $y \* 2`
echo $y
x=200
let "x=$x+1"
x=’hello’$x
y=$(expr $x / 2)
y=`expr $y \* 2`
result=$(($result+$num))
num=$((num+1))
1)-eq,-ne,-gt和-ge,-lt和-le,-z(为空),-n(非空)
2)=,!=,>(无>=),<(无<=)
【PS】
字符串比较时,尽量不用-z,而用!-n代替。
能用1)尽量不用2)。
&,|
【位运算:】
ckm@bidc:~/zzhTest> echo $(expr 1 \& 0)
0
ckm@bidc:~/zzhTest> echo $(expr 1 \| 0)
1
#!/bibn/bash
if [ $str !-n ];then
echo null!!
fi
if [ expression ] ;then statements
fi
if [ expression ] ;then statements
else statements
fi
if [ expression ] ;then statements
else if [ expression ] then statements
else statements
fi
if [ expression ] ;then statements
elif [ expression ] ;then statements
else statements
fi
【PS】
若then换行,则then前无需加;。
[和]的后、前有空格。
case "$var" in
cindition1 ) statements;;
cindition2 ) statements;;
...
* ) statements;;
esac
for var in [ list ];do
statements
done
【PS】
var 变量的引用不使用$。
<list>的元素用空格分隔。
while [ condition ]
do
statements
done
until [ condition ]
do
statements
done
#!/bin/bash
#变量的使用
str=‘hello world‘
echo $str
echo str
--执行文件
bash hello
sh hello
chmod u+x hello
hello
vi zzhdir
#!/bin/bash
ls –a
--执行
sh zzhdir
#!/bin/bash
function test {
local var=world
echo $var
}
var=hello
echo $var
test
echo $var
【PS】局部变量:首次被赋值时,变量前面加上local。
#!/bin/bash
a=10
if [ $a -gt 0 ]
then echo 1
else echo 2
fi
#!/bin/bash
if [ $1 = 10 ];then echo right!
else echo wrong!
fi
--执行
sh test 123
【PS】$1用于匹配命令行的第1个参数。(bash中的保留字)
var=12
case "$var" in
[a-z] ) echo ‘lowercase letter!‘;;
[0-9] ) echo ‘number‘;;
* ) echo other character!;;
esac
for var ;do
echo ok
done
--执行
sh test
sh test 1 "hello world" a
for i in $(seq 5)
do
echo $i
done
echo $i
--执行
sh test
for i in `seq 1 5`;do
echo TEST!
done
for((i=1;i<=5;i++));do
echo $i
done
echo $i
--执行
sh test
for param
do
echo $param
done
--执行脚本
sh test 123 456 789
【PS】未指定list,将打印所有命令行参数;当没有命令行参数时,什么都不打印
num=1
result=0
while [ $num -le 3 ]
do
result=$(($result+$num))
num=$((num+1))
done
echo $result
num=1
result=0
until [ $num -ge 3 ]
do
result=$(($result+$num))
num=$((num+1))
done
echo $result
for i in `seq 1 5`;do
if [ $i = 3 ];the
continue
else echo $i
fi
done
命名模式:Esc键,“:”英文冒号,“wq”保存退出,“q!”强制退出
插入模式:aAiIuU
删除单词:dw
删除整行:dd
字符串查找:“/”正斜杠
保留字
正则
函数
输入,输出: >,>>,>2,>1,>&
For循环
变量的作用:整数,字符串,计数,文件属性
次元立方
标签:style io 使用 ar for 文件 数据 sp cti
原文地址:http://www.cnblogs.com/zuo-zijing/p/3965671.html