小记一下:算数、数组、别名、密码的输入技巧、不要回车之法、&&与||的条件执行、脚本调试技法

算数

增1:
i=0;
let i++; 或 let i+=1; 或 let i=i+1;
    或 i=$[i+1]; 或 i=$[$i+1];
    或 i=$((i+1)); 或 i=$(($i+1));
    或 i=`expr $i + 1`; 或 i=$(expr $i + 1);
echo $i;
求和:
no1=1; no2=2;
let result=no1+no2; 或
        result=$[no1+no2]; 或 result=$((no1+no2)); 或
        result=`expr $no1 + $no2`; 或 result=$(expr $no1 + $no2);
echo $result;




数组

普通数组:
arr=(1 2 3 4 5 6 ); 或
arr[0]=1;
arr[1]=2;
arr[2]=3;
...
arr[5]=6;
关联数组:
declare -A arr;

arr=([apple]=10 [orange]=12); 或
arr[apple]=10;
arr[orange]=12;
数组长度:
length=${#arr[*]}; 或 
length=${#arr[@]};
数组元素值清单(单个元素值,可直接按索引给出):
echo ${arr[*]}; 或 
echo ${arr[@]};
数组索引清单:
echo ${!arr[*]}; 或 
echo ${!arr[@]};




别名

command(命令)前 加上 \ ,可以防止别名命令的执行,如
正常时   
 $ ll
加上 \ 后,即   
$ \ll
便执行失败





密码的输入技巧

stty -echo 可关闭终端的回显功能,即不显示输入字符;而 stty echo 开启此功能,如   
printf "Enter password: "
stty -echo
read passwd
stty echo
另外, read-s 选项也可达到此效果,如   
read -s passwd
结合 -p 选项(可增加提示字符),如   
read -sp "Enter password: " passwd



不要回车的结束输入方法

read -n N 选项可用于设置读取的字符个数,达到要求时( N个字符时),即结束输入,如   
read -n3 passwd
-d delim_charvar 选项,可用于设置定界符(delim_charvar),也可用于结束输入,如   
read -d : passwd

   
   

&& 与 || 的条件执行

[ condition ] && action    #如果condition为真,则执行action
[ condition ] || action    #如果condition为假,则执行action




脚本的调试

命令行上:
$ sh -x example.sh
脚本内的动作1:   
set -x    #打开调试
...
set +x    #关闭调试
脚本内的动作2:
#!/bin/bash 
改成
#!/bin/bash -x
函数式:如脚本 script.sh 可以这样写    
#!/bin/bash
function DEBUG()
{
    [ "$_DEBUG" == "on" ] && $@ || :
}

for i in {1..10}
do
    DEBUG echo $i
done
而后,如下方式执行   
$ _DEBUG=on ./script.sh

你可能感兴趣的:(数组,算数,密码的输入,&&与||,脚本调试)