Skip to content

使用 shell 脚本注册一万个用户

2019-12-12 6:2:33

shell

本文提到的Shell,都是指linux系统中相关的Shell程序和Shell脚本。

Shell是一个用C语言编写的程序,它为用户提供了和linux操作系统交流的方式。

Shell有两层含义,其一指Shell程序自身,它读取用户提供的脚本,执行系统相关操作;其二指Shell脚本,是一种脚本语言,由用户编写,由Shell程序解读,从而操作系统。

从这里开始,下文如果没有特指其他,提到的Shell均指Shell语言。

最广泛使用的Shell是Bash(Bourne Again Shell),除此之外,常见的Shell还有

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)

由于易用和免费,Bash最为广泛使用,同时它也是多数Linux的默认Shell。

Shell程序

按照国际惯例的hello world

shell
#!/bin/bash
echo "Hello World !"

#!是一个约定好的标记,它告诉系统用哪个Bash来执行下面的程序。echo用于输出文本。

变量

定义一个变量像这样

shell
name="xt"

定义变量的要求如下

  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
  • 中间不能有空格,可以使用下划线(_)。
  • 不能使用标点符号。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)。

使用一个定义过的变量,在变量左边加美元符号即可。

shell
echo $name

字符串

单双引号都可以定义字符串,区别和php差不多。

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  • 单引号字串中不能出现单独一个的单引号(对单引号使用转义符后也不行),但可成对出现,作为字符串拼接使用。
shell
str='this is a string'

如果是双引号,则没有那么多的限制。

shell
your_name='xt'
str="Hello, I know you are \"$your_name\"! \n"
echo -e $str
  • 双引号里可以有变量
  • 双引号里可以出现转义字符

双引号可以用于字符串拼接

shell
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"

数组

shell
数组名=(值1 值2 ... 值n)
shell
array_name=(
value0
value1
value2
value3
)

读取数组

shell
${数组名[下标]}
shell
valuen=${array_name[n]}

@可以表示数组中所有元素

shell
echo ${array_name[@]}

注释

#是行注释

shell
##### 用户配置区 开始 #####
#
#
# 这里可以添加脚本描述信息
# 
#
##### 用户配置区 结束  #####

shell循环

shell
for var in item1 item2 ... itemN
do
    command1
    command2
    ...
    commandN
done

shell curl post

这样可以发送一条curl

shell
curl -i -X POST -H "Content-type:application/x-www-form-urlencoded" -d "params1=value1" http://url.example

所以,循环curl的代码就是

shell
#!/bin/bash
source_data_str=(773814)
for i in ${source_data_str[@]};
do
    curl -i -X POST -H "Content-type:application/x-www-form-urlencoded" -d "sourceDataIdStr=$i" domain.example
done

最后更新于: