Shell脚本回顾练习笔记

#!/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`

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值