#!/bin/bash
#readonly name='wangxiaodong'; 只读变量,不能被unset删除,无法重新赋值定义。
name='wang'xiaodo'ng' ;
name_array=(reade write yellow black wite blue);
echo 'name:'${name};
echo "我的名字是:\"${name}\""
#出现i或者o的下标
echo `expr index "${name}" io`
echo "my name is:${name:4:10}"
# '#'可以或得某个变量的长度,[*]或者[@]代表所有,${name_array[*]}可以获得次数组所有的元素,加#代表获得变长度
echo "他们的名字是:${#name_array[*]}"
#对一个数组做#不指定数组下标求长度默认会获取第一个元素的长度
echo "长度为:${#name_array}"
#unset name; 删除变量
#echo '删除var:'${name};
<<!
for name in `ls /wxd`;
do
echo ${#name};
done;
!
二:
#!/bin/bash
printf "%s \t %-s\n" "1" "abc"
#当只有一个格式符,但是有好几个参数时,会每个参数都屌用这个格式符类似与map函数
<<!
%d 用来表示数字
%s 表示字符串
%f 表示浮点型
\n 表示换行符
\r 表示回车
\t 表示睡水平制表符
\v 表示垂直制表符.
三:
#!/bin/bash
echo "文件名为:"$0"";
echo "第一个参数为:"$1""
<<!
echo "第二个参数为:"$2""
!
echo "脚本运行的pid:"$$""
echo "后台运行的最后一个pid:"$!""
echo "传入的参数有:"$*""
echo "传入的参数有:"$@""
echo "shell的当前使用选项:""$-"
echo "最后命令的退出状态:"$?""
echo "传递的参数个数:"$#"" #根据你脚本输入的参数个数来决定,而不是根据用到几个参数
if [ ! -n $3 ];
then
echo "empty"
elif [ $3 -eq "3" ];
then
echo "this is 3";
else
if [ -s $3 ];
then
echo "{$3}是一个大小不为0的文件"
else
echo "其他选项";
fi;
fi;
四:
#!/bin/bash
demofun(){
echo "number 1 function"
printf "%s\n" "下面输入第一个参数:"
read arg0;
read -p "输入第二个参数:" arg1
printf "%s %d\n" "计算结果为:" "`expr $arg0 + $arg1`"
printf "%s %d\n" "计算结果为:" "$(($arg0 + $arg1))"
return $(($arg0+$arg1));
}
num=0
demofun;
#函数返回的参数传递通过$?获得,代表最后命令的退出状态
num=$?
let "num++"
echo $num
五:
#!/bin/bash
#-p 提述字符 -n 限制输入的字符,6个之后自动结束 -s 隐藏输入内容 -t 限时
read -p "我爱你" -n 6 array
array1=(${array});
#echo -e 是开启转义,‘\c'代表不换行。
echo -e "array1的所有元素为:"${array1[*]}"\c"
echo "array1长度为:"${#array1[*]}"";
echo "array1的第`expr "$1" + 1`个元素为:"${array1[$1]}""
if [ ${array1[$1]} -gt ${array1[1]} ];
then
echo "${array1[$1]} -gt ${array1[1]}结果为:true"
else
echo "${array1[$1]} -le ${array1[1]}结果为:true"
fi;
#echo "5 -gt 3 结果为:` 5 -gt 3
count=0;
#后面判可以写成test类型也成
# while( (${count}<${#array1[*]}) )
#while ( test ${count} -lt ${#array1[*]} )
#while( [ ${count} -lt ${#array1[*]} ] )
while( [ ${count} -lt ${#array1[*]} ] )
do
echo "array第${count}元素:${array1[$count]}";
let "count++"
done;
#result = [5 + 6]
#result = `expr 5 + 6`