for循环语句示例

一判断/var/目录下所有文件的类型

完整脚本

[root@centos73 ~]# cat  shell_scripts/filetype.sh
#!/bin/bash
#Author=wang
RED="\033[31m"
YELLOW="\033[0;33m"
CYAN="\033[36m"
PURPLE="\033[0;35m"
RESET="\033[0m"
if [ $# -ne 1 ] ; then
echo -e "$RED you must enter a parameter$RESET"
exit 1
fi file=$1
type=`ls -ld $file |cut -c 1` #使用case判断文件类型
case $type in
-)
echo -e "$CYAN general file$RESET"
;;
d)
echo -e "$YELLOW dir$RESET"
;;
l)
echo -e "$PURPLE link file$RESET"
;;
*)
echo "other"
;;
esac

执行结果

[root@centos73 ~]# bash   filetype.sh
you must enter a parameter
[root@centos73 ~]# bash filetype.sh /etc/passwd
general file
[root@centos73 ~]# bash filetype.sh /etc/
dir
[root@centos73 ~]# bash filetype.sh /etc
dir
[root@centos73 ~]# bash   filetype.sh   /bin/python
link file
[root@centos73 ~]# bash filetype.sh /bin/python
link file
[root@centos73 ~]# bash filetype.sh /bin/python
link file
[root@centos73 ~]# echo $PATH
/root/shell_scripts:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

脚本解析

涉及到了颜色,相关知识参考博客给输出的字符或者字符串添加颜色

先判断参数,也就是文件是否存在

if [ $# -ne 1 ] ; then

echo -e "$RED you must enter a parameter$RESET"

exit

第1个参数赋值给变量

file=$

type=`ls -ld $file |cut -c 1`

[root@centos73 ~]# ll -d  /etc/passwd
-rw-r--r--. 1 root root 2766 Jun 29 16:52 /etc/passwd
[root@centos73 ~]# ll -d /etc/passwd | cut -c 1
-

二/etc/rc.d/rc3.d目录下分别有多个以K开头和以S开头的文件

分别读取每个文件,以K开头的输出为文件加stop,以S开头的输出为文件名加start

如K34filename stop,S66filename start

完整脚本

[root@centos73 shell_scripts]# cat   file_KS.sh
#!/bin/bash
#Author=wang
for i in `ls -1 /etc/rc.d/rc3.d` ; do
type=`echo $i | cut -c 1 `
if [ "$type" == "S" ] ; then
echo "$i start"
elif [ "$type" == "K" ] ; then
echo "$i stop"
else
echo "$i unkown"
fi
done
[root@centos73 shell_scripts]# ls -1 /etc/rc.d/rc3.d
K50netconsole
S10network
[root@centos73 shell_scripts]# ls -1 /etc/rc.d/rc3.d | cut -c 1
K
S

执行结果

[root@centos73 shell_scripts]# bash   file_KS.sh
K50netconsole stop
S10network start

三提示输入正整数n的值,计算1+2+…+n的总和

完整脚本

[root@centos73 shell_scripts]# cat sum.sh
#!/bin/bash
#Author=wang
if [ $# -ne 1 ] ; then
echo "you must enter a parameter"
exit 1
fi n=$1
digit="^[0-9]+$"
if [[ ! $n =~ $digit ]]; then
echo "not a digit"
exit 2
fi declare -i sum=0
#将变量定义为整形
for i in `seq 1 $n`;do
sum+=$i
done
echo $sum

执行结果

[root@centos73 shell_scripts]# bash  sum.sh   1
1
[root@centos73 shell_scripts]# bash sum.sh 2
3
[root@centos73 shell_scripts]# bash sum.sh 3
6
[root@centos73 shell_scripts]# bash sum.sh 4
10
[root@centos73 shell_scripts]# bash sum.sh 5
15
[root@centos73 shell_scripts]# bash sum.sh 6
21
[root@centos73 shell_scripts]# bash sum.sh 7
28
[root@centos73 shell_scripts]# bash sum.sh 8
36
[root@centos73 shell_scripts]# bash sum.sh 9
45
[root@centos73 shell_scripts]# bash sum.sh 100

四打印九九乘法表

1*1=1
1*2=2   2*2=4
1*3=3   2*3=6   3*3=9

......

1*9=9   2*9 ...  9*9

被乘数指四则运算的乘法中被乘的数字,一般来说放在算式的前面。
如:4×2=8
上述算式中4是被乘数,2是乘数。

要打印9行就要执行9次循环,第几行就循环几遍,第1行循环1遍,第9行循环9遍。

被乘数的值是从1到所在的行号,乘数就是所在行的行号。

完整脚本

[root@centos73 shell_scripts]# cat   nine_nine_multiplication_table.sh
#!/bin/bash
#Author=wang
for ((i=1;i<=9;i++));do
for ((j=1;j<=i;j++));do
echo -ne "${j}x${i}=$[$i*$j]\t"
#\t表示插入tab。联系Linux可以使用tab键补齐,并且在文件里面输入tab键会退固定的空格
done
echo
done

执行结果

[root@centos73 shell_scripts]# bash  nine_nine_multiplication_table.sh
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81

脚本解析

使用for语句第2种语法,并且涉及到了两个变量

for ((i=1;i<=9;i++));do

for ((j=1;j<=i;j++));do

"${j}x${i}=$[$i*$j]\t"  因为x是字母,两个变量要使用花括号括起来

涉及到变量引用

变量引用:${name} $name
"  ":弱引用,其中的变量引用会被替换为变量值
'  ':强引用,其中的变量引用不会被替换为变量值,而保持原字符串

[root@centos73 ~]# echo "{a}"
{a}
[root@centos73 ~]# echo "${a}"
1
[root@centos73 ~]# echo ${a}
1
[root@centos73 ~]# echo '${a}'
${a}

不合格脚本,原因在于没有tab键

[root@centos73 shell_scripts]# cat   nine_nine_multiplication_table.sh
#!/bin/bash
#Author=wang
for ((i=1;i<=9;i++));do
for ((j=1;j<=i;j++));do
echo -ne "${j}x${i}=$[$i*$j]"
done
echo
done
[root@centos73 shell_scripts]# bash  nine_nine_multiplication_table.sh
1x1=1
1x2=22x2=4
1x3=32x3=63x3=9
1x4=42x4=83x4=124x4=16
1x5=52x5=103x5=154x5=205x5=25
1x6=62x6=123x6=184x6=245x6=306x6=36
1x7=72x7=143x7=214x7=285x7=356x7=427x7=49
1x8=82x8=163x8=244x8=325x8=406x8=487x8=568x8=64
1x9=92x9=183x9=274x9=365x9=456x9=547x9=638x9=729x9=

五在/testdir目录下创建10个html文件,

文件名格式为数字N(从1到10)加随机8个字母

在/testdir目录下创建10个html文件,文件名格式为数字N(从1到10)加随机8个字母,如:1AbCdeFgH.html

完整脚本

[root@centos73 shell_scripts]# cat   randhtml_1.sh
#!/bin/bash
#Author=wang
dir=/testdir
if [ ! -d $dir ] ; then
mkdir -pv $dir &>/dev/null
fi
for i in `seq 1 10` ; do
rand=`openssl rand -base64 10 | sed -rn "s@[^[:alpha:]]@@gp"|head -c 8`
touch $dir/$i$rand.html
done

执行结果

[root@centos73 shell_scripts]# bash  randhtml_1.sh
[root@centos73 shell_scripts]# ls /testdir/
10DtiEyzsk.html 2htpVNwja.html 4ysrokezy.html 6bPaFMedz.html 8hJRPmQxQ.html
1TUWVBvMC.html 3YtFXYSZm.html 5COTAQDfG.html 7RqvJatMs.html 9xnGiosvG.html
[root@centos73 shell_scripts]# ls /testdir/ -l
total 0
-rw-r--r--. 1 root root 0 Jul 1 08:58 10DtiEyzsk.html
-rw-r--r--. 1 root root 0 Jul 1 08:58 1TUWVBvMC.html
-rw-r--r--. 1 root root 0 Jul 1 08:58 2htpVNwja.html
-rw-r--r--. 1 root root 0 Jul 1 08:58 3YtFXYSZm.html
-rw-r--r--. 1 root root 0 Jul 1 08:58 4ysrokezy.html
-rw-r--r--. 1 root root 0 Jul 1 08:58 5COTAQDfG.html
-rw-r--r--. 1 root root 0 Jul 1 08:58 6bPaFMedz.html
-rw-r--r--. 1 root root 0 Jul 1 08:58 7RqvJatMs.html
-rw-r--r--. 1 root root 0 Jul 1 08:58 8hJRPmQxQ.html
-rw-r--r--. 1 root root 0 Jul 1 08:58 9xnGiosvG.html

脚本解析

[root@centos73 ~]# openssl rand -base64 10
9HlYaAoiWqYhHQ==
[root@centos73 ~]# openssl rand -base64 10
hhT85PKosPFIrQ==
[root@centos73 ~]# openssl rand -base64 10
cZW6W01bbEHAlA==
[root@centos73 ~]# openssl rand -base64 10  |sed -rn "s@[^[:alpha:]]@@g"
[root@centos73 ~]# openssl rand -base64 10 |sed -rn "s@[^[:alpha:]]@@g"
[root@centos73 ~]# openssl rand -base64 10 |sed -rn "s@[^[:alpha:]]@@g"
[root@centos73 ~]# openssl rand -base64 10 |sed -rn "s@[^[:alpha:]]@@g"
[root@centos73 ~]# openssl rand -base64 10 |sed -rn "s@[^[:alpha:]]@@gp"
nKBMSLAnpyMg
[root@centos73 ~]# openssl rand -base64 10 |sed -rn "s@[^[:alpha:]]@@gp"
sSXTbVqzYQ
[root@centos73 ~]# openssl rand -base64 10 |sed -rn "s@[^[:alpha:]]@@gp"
MVCoWaDCmjcw
[root@centos73 ~]# openssl rand -base64 10 |sed -rn "s@[^[:alpha:]]@@gp"
guLpqstbTJw
[root@centos73 ~]# openssl rand -base64 10  |  sed -rn "s@[^[:alpha:]]@@gp"|head -c 8
CJDYqHkQ[root@centos73 ~]# openssl rand -base64 10 | sed -rn "s@[^[:alpha:]]@@gp"|head -c 8
VesypmUO[root@centos73 ~]# openssl rand -base64 10 | sed -rn "s@[^[:alpha:]]@@gp"|head -c 8
hySmdYup[root@centos73 ~]# openssl rand -base64 10 | sed -rn "s@[^[:alpha:]]@@gp"|head -c 8
gKzXWLKl[root@centos73 ~]# openssl rand -base64 10 | sed -rn "s@[^[:alpha:]]@@gp"|head -c 8
ZxfSnlmE[root@centos73 ~]# openssl rand -base64 10 | sed -rn "s@[^[:alpha:]]@@gp"|head -c 8 | wc
0 1 8
[root@centos73 ~]# openssl rand -base64 10 | sed -rn "s@[^[:alpha:]]@@gp"|head -c 8 | wc
0 1 8
[root@centos73 ~]# openssl rand -base64 10 | sed -rn "s@[^[:alpha:]]@@gp"|head -c 8 | wc
0 1

六使用循环嵌套打印矩形

完整脚本

[root@centos73 shell_scripts]# cat    rectangle.sh
#!/bin/bash
#Author=wang
line=10
colume=8
for i in `seq 1 $line ` ;do
for j in `seq $colume`;do
echo -e "*\c"
done
echo #执行完一次循环要换行,要执行10次循环就会换10行
done

执行结果

[root@centos73 shell_scripts]# bash  rectangle.sh
********
********
********
********
********
********
********
********
********
********

要加反引号

下面是做10遍循环,人为的写上8个*

[root@centos73 shell_scripts]# bash  rectangle.sh
********
********
********
********
********
********
********
********
********
********
[root@centos73 shell_scripts]# bash rectangle.sh | wc
10 10 90
[root@centos73 shell_scripts]# cat rectangle.sh
#!/bin/bash
#Author=wang
line=10
colume=8
for i in `seq 1 $line ` ;do
echo "********"
done

脚本解析

如果是嵌套循环,最外层是打印10行,也就是先打印10行。

要调用两个变量,使用脚本里面常用的i,j,k

使用j表示来调用列,完成8个*的打印

因为*默认是换行的,\c就是压缩掉换行

先执行最外面循环,执行i=1,再执行里面的for循环,也就是打印一行的8个*

在循环体的最后一行 echo表示执行完一次循环要换行,要执行10次循环就会换10行

这个示例比较难理解

[root@centos73 shell_scripts]# bash  rectangle.sh
********
********
********
********
********
********
********
********
********
********
[root@centos73 shell_scripts]# vim rectangle.sh
[root@centos73 shell_scripts]# man echo
[root@centos73 shell_scripts]# cat rectangle.sh
#!/bin/bash
#Author=wang
line=10
colume=8
for i in `seq 1 $line ` ;do
for j in `seq $colume`;do
echo -e "*\c"
done
echo #执行完一次循环要换行,要执行10次循环就会换10行
done

bug1:

[root@centos73 shell_scripts]# bash  rectangle.sh
*
*
*
*
*
*
*
* *
*
*
*
*
*
*
*
.......
[root@centos73 shell_scripts]# cat rectangle.sh
#!/bin/bash
#Author=wang
line=10
colume=8
for i in `seq 1 $line ` ;do
for j in `seq $colume`;do
echo "*"
done
echo
done

echo打印的是空行

[root@centos73 ~]# echo 

[root@centos73 ~]# echo 

[root@centos73 ~]# echo 

[root@centos73 ~]# echo   | wc
1 0

bug2:

[root@centos73 shell_scripts]# cat  rectangle.sh
#!/bin/bash
#Author=wang
line=10
colume=8
for i in `seq 1 $line ` ;do
for j in `seq $colume`;do
echo "*"
done
done
[root@centos73 shell_scripts]# bash rectangle.sh
*
*
*
*
*
*
*
*
*
*
*
*

七打印三角形,要求行号和所在行的*个数相同

*

**
***
****

完整脚本

[root@centos73 shell_scripts]# cat   triangle.sh
#!/bin/bash
#Author=wang
line=8
for i in `seq $line`;do
for j in `seq $i`;do
echo -e '$\c'
#\c表示最后不加上换行符合
done
echo
done

执行结果

[root@centos73 shell_scripts]# bash  triangle.sh
$
$$
$$$
$$$$
$$$$$
$$$$$$
$$$$$$$
$$$$$$$$

脚本解析

变量i的值就是行号,这是默认的

for j  in `seq  $i`表示的是从1循环到行号

八打印等腰三角形

*
 ***
*****

完整脚本

[root@centos73 shell_scripts]# cat  isoscelestriangle.sh
#!/bin/bash
#Author=wang
#num=总行号 i=第几行 j=*个数 k=空格个数
read -p "请输入一个数字: " num #每行的空格数,以确定*的开始位置
for i in `seq 1 $num`;do
for k in `seq 1 $[$num-$i]`; do
echo -n " "
#-n表示换行,并且光标移至行首
done #每行*的个数
for j in `seq 1 $[2*$i-1]`;do
echo -n "*"
done
echo
done #删除变量
unset num i j k color

执行结果

[root@centos73 shell_scripts]# bash  isoscelestriangle.sh
请输入一个数字: 4
*
***
*****
*******
[root@centos73 shell_scripts]# bash  isoscelestriangle.sh
请输入一个数字: 52
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*********************
***********************
*************************
***************************
*****************************
*******************************
*********************************
***********************************
*************************************
***************************************
*****************************************
*******************************************
*********************************************
***********************************************
*************************************************
***************************************************
*****************************************************
*******************************************************
*********************************************************
***********************************************************
*************************************************************
***************************************************************
*****************************************************************
*******************************************************************
*********************************************************************
***********************************************************************
*************************************************************************
***************************************************************************
*****************************************************************************
*******************************************************************************
*********************************************************************************
***********************************************************************************
*************************************************************************************
***************************************************************************************
*****************************************************************************************
*******************************************************************************************
*********************************************************************************************
***********************************************************************************************
*************************************************************************************************
***************************************************************************************************
*****************************************************************************************************
*******************************************************************************************************

脚本解析

打印几行那么第1行的第1个内容,比如*就处在第几列

每行的*的个数与行号的关系:2n-1

每行的空格数和行数的关系:总行数-行数

循环的次数和行数一样。

主要是逻辑思维

line=3

for i in `seq 1 total`
do
for j in ;do
空格数=total-n
*数=2n-1
done
echo
done

不合格脚本

[root@centos73 shell_scripts]# cat    isoscelestriangle.sh
#!/bin/bash
#Author=wang
#num=总行号 i=第几行 j=*个数 k=空格个数
read -p "请输入一个数字: " num #每行的空格数,以确定*的开始位置
for i in `seq 1 $num`;do
for k in `seq 1 $[$num-$i]`; do
echo " "
#-n表示换行,并且光标移至行首
done #每行*的个数
for j in `seq 1 $[2*$i-1]`;do
echo "*"
done
echo
done #删除变量
unset num i j k color
[root@centos73 shell_scripts]# bash  isoscelestriangle.sh
请输入一个数字: 4 * *
*
* *
*
*
*
* *
*
*
*
*
*
*

九打印国际象棋

国际象棋是8行8列

打印有颜色的格子

打印颜色参考博客https://www.cnblogs.com/wang618/p/11047178.html

[root@centos73 shell_scripts]# echo   -e   ' \033[41m       \033[0m '

[root@centos73 shell_scripts]# echo   -e   ' \033[43m       \033[0m '
         

[root@centos73 shell_scripts]# echo   -e   ' \033[43m       \033[0m '; echo   -e   ' \033[41m       \033[0m '

[root@centos73 shell_scripts]# echo   -e   ' \033[41m       \033[0m '; echo   -e   ' \033[43m       \033[0m '

[root@centos73 shell_scripts]# echo   -e   ' \033[41m                                                                \033[0m '
                                                                  

[root@centos73 shell_scripts]# echo   -e   '\033[41m    \033[0m\c '; echo   -e   '\033[43m   \033[0m '

[root@centos73 shell_scripts]# echo   -e   '\033[41m         \033[0m\c '; echo   -e   '\033[43m        \033[0m '

[root@centos73 shell_scripts]# echo   -e   '\033[41m       \033[0m\c '; echo   -e   '\033[43m       \033[0m ';
echo -e '\033[41m \033[0m\c '; echo -e '\033[43m \033[0m '

法1完整脚本

写死了,不能交互,只能打印8个格子

[root@centos73 shell_scripts]# cat  Chess.sh
#!/bin/bash
#Author=wang
line=8
line2=$[line*2]
#打印格子和颜色有关,因为只涉及两种颜色,五五开
#i是打印格子的数量,j是循环次数
#从里到外进行循环,最里面是循环最前面的两个格子
for i in `seq 1 8 ` ; do
for j in `seq 1 $line2 ` ; do
if [ $[i%2] -eq 1 ] ; then
if [ $[j%4] -eq 1 -o $[j%4] -eq 2 ] ; then
echo -ne "\033[41m \033[0m"
else
echo -ne "\033[42m \033[0m"
fi
else
if [ $[j%4] -eq 1 -o $[j%4] -eq 2 ] ; then
echo -ne "\033[42m \033[0m"
else
echo -ne "\033[41m \033[0m"
fi
fi
done
echo
done

执行结果

脚本解析

使用了if语句的嵌套

法2完整脚本

[root@centos73 shell_scripts]# cat  Chess_1.sh
#!/bin/bash
#Author=wang
read -p "please input NUM : " num
#交互式输入数字,这样更灵活 for i in $(seq 1 $num)
#输入的数字作为变量值
do
j=$[i%2]
#j是取模值,和颜色有关,为0为1颜色相反
times=$[num/2]
#决定每行打印格子的次数,因为两种颜色有交替,那么就是要经过(打印格子数/2)次循环
case $j in
0)
for times in $(seq 1 $times)
do
echo -e '\033[47m \033[0m\c'
echo -e '\033[45m \033[0m\c'
done
echo -e ""
;;
1)
for times in $(seq 1 $times)
do
echo -e '\033[45m \033[0m\c'
echo -e '\033[47m \033[0m\c'
done
echo -e ""
;;
esac
#case嵌套了for循环
done

执行结果

脚本解析

read -p "please input NUM : " num交互式输入数字,这样更灵活

变量i是执行循环的次数,变量j决定了每个格子的颜色

对j取模来决定一行前面两个格子的颜色。

如果取模的值是0就是白紫,如果取模的值是1那么就是紫白,

上面执行脚本的时候反应慢是因为嵌套循环多了,如果每行每列打印8个格子,那么要经过4次循环。

如果是随机打印格子,那么要经过(打印格子数/2)次循环。

注意echo -e ""是必不可少的。

作用是每打印一行就空一行,这样不会粘在一起,全部内容打印到同一行

[root@centos73 shell_scripts]# echo aa
aa
[root@centos73 shell_scripts]# echo aa | wc
1 1 3
[root@centos73 shell_scripts]# echo aa;echo -e ""
aa [root@centos73 shell_scripts]# echo aa;echo -e "" | wc
aa
1 0

没有添加echo -e ""

[root@centos73 shell_scripts]# cat    Chess_1.sh
#!/bin/bash
#Author=wang
read -p "please input NUM : " num
#交互式输入数字,这样更灵活 for i in $(seq 1 $num)
#输入的数字作为变量值
do
j=$[i%2]
#j是取模值,和颜色有关,为0为1颜色相反
times=$[num/2]
#决定每行打印格子的次数,因为两种颜色有交替,那么就是要经过(打印格子数/2)次循环
case $j in
0)
for times in $(seq 1 $times)
do
echo -e '\033[47m \033[0m\c'
echo -e '\033[45m \033[0m\c'
done
# echo -e ""
;;
1)
for times in $(seq 1 $times)
do
echo -e '\033[45m \033[0m\c'
echo -e '\033[47m \033[0m\c'
done
# echo -e ""
;;
esac
#case嵌套了for循环
done

for循环语句示例的更多相关文章

  1. for循环语句示例应用

    age = 22 #优化前 ''' for i in range(10): guess_num = int(input('input your guess num:')) if guess_num = ...

  2. Shell循环语句for、while、until

    Shell循环语句for.while.until            一.条件测试            二.删除字符            三.循环语句              示例1     ...

  3. python之最强王者(3)——变量,条件、循环语句

    1.Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的 ...

  4. JavaScript 的循环语句语法摘要

     if条件语句语法: if(condition){ statements; } 理解:圆括号里的是条件参数  ,花括号里的为执行的语句. 示例代码:if(1>2){ alert("Th ...

  5. 04- Shell脚本学习--条件控制和循环语句

    条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expre ...

  6. 你可能不知道的java、python、JavaScript以及jquary循环语句的区别

    一.概述 java循环语句分为四种形式,分别是 while, do/while, for, foreach: python中循环语句有两种,while,for: JavaScript中循环语句有四种, ...

  7. 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等

    [源码下载] 不可或缺 Windows Native (3) - C 语言: 运算符,表达式,条件语句,循环语句,转向语句,空语句等 作者:webabcd 介绍不可或缺 Windows Native  ...

  8. python_条件、循环语句

    1. python中语句块如何定义: 在Python中,冒号(:)用来标识语句块的开始,块中的每一个语句都是缩进的.当回退到和已经闭合的块一样的缩进量时,就表示当前块已经结束.      默认推荐缩进 ...

  9. JavaScript的循环语句

    JavaScript的循环语句 1.JavaScript的循环语句 (1)for循环语句 - 循环代码块一定的次数: (2)for/in循环语句 - 循环遍历对象的属性: (3)while循环语句 - ...

随机推荐

  1. app、web其他测试点

  2. Codeforces 814C - An impassioned circulation of affection

    原题链接:http://codeforces.com/contest/814/problem/C 题意:有长度为n的一个字符串,q个询问,每个询问由数字m和字符c组成,问最多在字符串中替换m个字符,使 ...

  3. html 和 body标签的 css 设置

    个人猜测浏览器的机制:H5页面底板上有一张画布,画布高度可以被撑高.html.body等元素是固定在画布上的.浏览器中页面的滚动是跟着画布滚动的.(fixed定位是脱离这种机制的,相对浏览器窗口定位的 ...

  4. 简单js表单验证

     简单js表单验证demo <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org ...

  5. (转载)虚拟机出现无法连接虚拟设备sata0:0,因为主机上没有相应设备

    虚拟主机需要镜像文件, 如果是拷贝的虚拟机,还需要桥接联网的话,更改mac地址,

  6. 三线SWD模式Jlink

    三线SWD模式Jlink   在公司实习,部门经理让我做一个USB-CAN的适配器. 在网上找资料,找到一个开源的USB-CAN的适配器的资料. 采用的是CP2102芯片实现USB转串口.STM32作 ...

  7. java并发编程笔记(八)——死锁

    java并发编程笔记(八)--死锁 死锁发生的必要条件 互斥条件 进程对分配到的资源进行排他性的使用,即在一段时间内只能由一个进程使用,如果有其他进程在请求,只能等待. 请求和保持条件 进程已经保持了 ...

  8. TypeScript:TypeScript 百科

    ylbtech-TypeScript:TypeScript 百科 TypeScript是一种由微软开发的自由和开源的编程语言.它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类 ...

  9. Jenkins构建触发器的区别

    Build periodically:定时进行项目构建或执行(它不care源码是否发生变化),配置如下: 0 2 * * *  (每天2:00 必须build一次源码) 如果是要定时执行脚本,需要选择 ...

  10. Python笔记(十)_迭代器与生成器

    迭代 用for...in来遍历一个可迭代对象的过程就叫迭代 可迭代对象:列表.元组.字典.集合.字符串.生成器 可以使用内置函数isinstance()判断一个对象是否是可迭代对象 >>& ...