当前位置:首页 » 编程软件 » shell脚本o

shell脚本o

发布时间: 2023-01-06 17:46:08

㈠ 编写一个shell脚本,删除当前目录下空文件

#!/bin/bash
#当前路径
MYDIR=`dirname"$0"`
#切换到当前路径
cd"$MYDIR"
#删除当前文件夹下所有空文件夹
find"$MYDIR"-typed-execrmdir-p{};

#对于文件夹大小大于0的文件夹无效。
#$MYDIR加双引号可以删除带空格的文件夹。

试试看这个代码。

㈡ shell脚本

Shell脚本基本知识
概述:shell其实是内核与用户之间的一个接口,
shell脚本
如果有一系列经常使用的linux命令,你可以把它们存储在一个文件肿。shenll可以读取这个文件,并执行其中的命令。这样的文件成为脚本文件。
执行shell脚本
要创建一个shell脚本,你要使用任何编辑器比如vi在文本文件中编写他。
为了使用bashshell赖执行脚本magic,其命令是:bashmagic或者./magic
echo命令:
echo“!”
屏幕上就会回显“!”
#符号
用于在shell脚本肿可以包含注解入口
echo“hello”
#thisisacommentline.thiswouldnotproceanyoutput!
echo“world!”
第二行是一个注解的例子。它将被shell忽略,而且不产生任何消息
变量:
可以在任何时间通过简单的赋值来创建。
语法:
<variablename>-<value>
Linux中的所有变量都被当作字符串
引用变量:
$符号用于引用一个变量的内容
variable1=${variable2}
读入值给变量
在执行shell脚本时,shell还允许用户直接从键盘读入一个值给变量,还可以使用read命令来作。
$readfname
本地和全局shell变量
局部变量
当引用shell时,只有创建它的shell能够知道变量的存在
全局变量
称为子shell
shell中创建的变量局部于创建它的shell,除非使用export命令特别指出是全局的。
环境变量:
通过改变这些变量的值,用户能够定制此环境
一些环境变量的例子是HOME,PATH,PS1,PS2,LOGNAME,SHLVL,及SHELL
HOME变量
Linux系统中的每个用户都有一个相关的称作HOME的目录
当一个用户登录后,进入相应的HOME的目录
$echo$HOME
PATH变量
包含一列用冒号定界的目录的路径名字,便于可执行程序的搜索。
PS1变量
PS1(PromptString1)变量包含了shell提示符,$符号
$PS1=“HELLO>”
HELLO>
PS2变量
是为第二个提示符设置值的环境变量
LOGNAME变量
包含用户的注册名字
$echo“${LOGNAME}”
SHLVL变量
该变量包含当前工作的shelllevel
SHELL变量
环境变量存储了用户缺省的shell
env命令
可用来查看所有的已移出的环境变量表和它们各自的值!
命令替换
在单个命令行中使用多个命令的另外一种方法(非Pipes)是通过命令替换
echo“thedatais`date`”
expr命令
用于求之算术表达式。该命令的输出被送到标准输出
$expr4+5
将在屏幕上显示9
算术展开:
你可以在$((…))中括一个表达式,用下面的命令来计算它的值;
$((expression))
example1
编写一个shell脚本用于计算呼叫中心未应答的询问的数量。该脚本应该接受一天那所报告的询问的总数和应答的询问的数量,以便计算未应答的询问的数量。
所有未应答的询问总数=所有询问的总数-应答的询问的数量
<!--[if!supportLists]-->※<!--[endif]-->※※※※※※※※※※※※※※※※※※※※※※※
条件执行
test和[]
求值表达式,并返回true(0)或false()
数值测试:
-eq等于则为真
-ne不等于则为真
-gt大于则为真
-ge大于等于则为真
-lt小于则为真
-le小于等于则为真
if构造
Linuxshell提供了循环和判定的构造,可以在shell脚本中使用
算术测试
结合if构造,它可以用于测试变量的数字值
串测试
test命令也可以用于字符串
=等于则为真
!=不相等则为真
-z字符串长度为零则为真
-n字符串长度不为零则为真
文件测试
test命令也可以用于检查文件的状态
-e文件存在则为真
-r文件存在并且可读则为真
-w文件存在并且可写则为真
-x文件存在并且可执行则为真
-s文件存在并且至少有一个字符则为真
-d文件存在并且为目录则为真
-f文件存在并且为普通文件则为真
-c文件存在并且为字符型文件则为真
-b文件存在并且为块特殊文件则为真
-a并且-o或者!非
exit命令
用于终止shell脚本的执行并返回到$提示符下
case。。。esac
shell脚本中使用的这个构造依据变量的值而执行一组特定指令
当变量的值和其中的一个值匹配的时候,就执行写在该值下的一组命令。
example3
迭代
while构造
while<条件>
do
<命令(s)>
done
只有条件为真的时候,才能执行do与done之间的命令
until构造
until循环构造的求值模式于while循环相反
until循环将继续执行直到求值的条件为真的时候
for构造
forvariable_namein<list_of_values>
do

done
for循环取一列值作为输入并对循环中每个值执行循环
break和contineu命令
同其他语言中的用法
example4
控制进程的执行
请求后台处理
用于请求后台进程的符号是(&)
$wctempfile&
[1]2082
$vinewfile
检查后台进程
ps(进程状态)命令为每个当前的活动的每个进程产生一行入口。
终止后台进程
可用kill,如下所示
kill278
查看完成一个命令所花的时间
你可以使用time命令来查看一个命令从开始到结束所花的时间
timefine/etc–name“passwd”2>/dev/null/dev/null表明忽略错误信息。
管道的介绍
垂直条(|)是管道字符
它只是shell:“|”前面命令的输出作为“|”之后命令的输入发送
ls–l|more
用管道组合命令,功能强大

㈢ shell脚本上

| 对于初学者而言,因为没有实战经验,写不出来 Shell 脚本 很正常,如果工作了几年的运维老年还是写不出来,那就是没主动找需求,缺乏练习,缺乏经验。针对以上问题,总结了30个生产环境中经典的 Shell 脚本 ,通过这些需求案例,希望能帮助大家提升Shell编写思路,掌握编写技巧。 |

先了解下编写Shell过程中注意事项:

<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">开头加解释器:#!/bin/bash
语法缩进,使用四个空格;多加注释说明。
命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用。
默认变量是全局的,在函数中变量local指定为局部变量,避免污染其他作用域。
有两个 命令 能帮助我调试脚本:set -e 遇到执行非0时退出脚本,set-x 打印执行过程。
写脚本一定先测试再到生产上。
</pre>

1、获取随机字符串或数字

<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">获取随机8位字符串:
方法1:

471b94f2
方法2:

vg3BEg==
方法3:

ed9e032c

获取随机8位数字:
方法1:

23648321
方法2:

38571131
方法3:

69024815

cksum:打印CRC效验和统计字节
</pre>

2、定义一个颜色输出字符串函数

<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">方法1:
function echo_color() {
if [ 233[0m"
elif [ 233[0m"
fi
}
方法2:
function echo_color() {
case 2[0m"
;;
red)
echo -e "[31;40m$2[0m"
;;
*)
echo "Example: echo_color red string"
esac
}

使用方法:echo_color green "test"

function关键字定义一个函数,可加或不加。
</pre>

3、批量创建用户

<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">#!/bin/bash
DATE= 1 == "green" ]; then
echo -e "[32;40m 1 == "red" ]; then
echo -e "[31;40m$2[0m"
fi
}

if [ -s USER_FILE {DATE}.bak
echo_color green " {USER_FILE}- USER_FILE
echo "----------------" >> USER &>/dev/null; then
PASS= RANDOM |md5sum |cut -c 1-8)
useradd PASS |passwd --stdin USER USER_FILE
echo " USER User already exists!"
fi
done
</pre>

4、检查软件包是否安装

<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">#!/bin/bash
if rpm -q sysstat &>/dev/null; then
echo "sysstat is already installed."
else
echo "sysstat is not installed!"
fi
</pre>

5、检查服务状态

<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">#!/bin/bash
PORT_C= (ps -ef |grep ntpd |grep -vc grep)
if [ PS_C -eq 0 ]; then
echo "内容" | mail -s "主题" [email protected]
fi
</pre>

6、检查主机存活状态

<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">方法1:将错误IP放到数组里面判断是否ping失败三次

IP_LIST="192.168.18.1 192.168.1.1 192.168.18.2"
for IP in NUM -le 3 ]; do
if ping -c 1 IP Ping is successful."
break
else
# echo " NUM"
FAIL_COUNT[ IP
let NUM++
fi
done
if [ {FAIL_COUNT[1]} Ping is failure!"
unset FAIL_COUNT[*]
fi
done

方法2:将错误次数放到FAIL_COUNT变量里面判断是否ping失败三次

IP_LIST="192.168.18.1 192.168.1.1 192.168.18.2"
for IP in IP >/dev/null; then
echo " IP Ping is failure FAIL_COUNT -eq 3 ]; then
echo "$IP Ping is failure!"
fi
done

方法3:利用for循环将ping通就跳出循环继续,如果不跳出就会走到打印ping失败

ping_success_status() {
if ping -c 1 IP Ping is successful."
continue
fi
}
IP_LIST="192.168.18.1 192.168.1.1 192.168.18.2"
for IP in IP Ping is failure!"
done
</pre>

7、监控CPU、内存和硬盘利用率

<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">1)CPU
借助vmstat工具来分析CPU统计信息。

DATE= (ifconfig eth0 |awk -F [ :]+ /inet addr/{print (vmstat |awk NR==3{print (vmstat |awk NR==3{print (vmstat |awk NR==3{print (vmstat |awk NR==3{print (( SY))
if [ DATE
Host: USE
" | mail -s "CPU Monitor" $MAIL
fi

2)内存

DATE= (ifconfig eth0 |awk -F [ :]+ /inet addr/{print (free -m |awk /Mem/{print (free -m |awk /Mem/{print 6- (( USE))

if [ DATE
Host: TOTAL,Use= FREE
" | mail -s "Memory Monitor" $MAIL
fi

3)硬盘

DATE= (ifconfig eth0 |awk -F [ :]+ /inet addr/{print (fdisk -l |awk -F [: ]+ BEGIN{OFS="="}/^Disk /dev/{printf "%s=%sG,", 3} )
PART_USE= 1,int( 6} )
for i in (echo (echo (echo USE -gt 80 ]; then
echo "
Date: IP
Total: PART= MOUNT)
" | mail -s "Disk Monitor" $MAIL
fi
done
</pre>

8、批量主机磁盘利用率监控

<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">前提监控端和被监控端SSH免交互登录或者密钥登录。

写一个配置文件保存被监控主机SSH连接信息,文件内容格式:IP User Port

HOST_INFO=host.info
for IP in 1} (awk -v ip= 1{print HOST_INFO)
PORT= IP ip== 3} PORT IP df -h > (awk BEGIN{OFS="="}/^/dev/{print 5)} USE_RATE_LIST; do
PART_NAME= {USE_RATE#*=}
if [ PART_NAME Partition usage $USE_RATE%!"
fi
done
done
</pre>

9、检查网站可用性

<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">1)检查URL可用性
方法1:
check_url() {
HTTP_CODE= 1)
if [ 1 Access failure!"
fi
}
方法2:
check_url() {
if ! wget -T 10 --tries=1 --spider $1 >/dev/null 2>&1; then

}

使用方法:check_url www..com

2)判断三次URL可用性
思路与上面检查主机存活状态一样。

方法1:利用循环技巧,如果成功就跳出当前循环,否则执行到最后一行

check_url() {
HTTP_CODE= 1)
if [ URL_LIST; do
check_url URL
check_url URL Access failure!"
done

方法2:错误次数保存到变量

URL_LIST=" www..com www.agasgf.com "
for URL in (curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" HTTP_CODE -ne 200 ]; then
let FAIL_COUNT++
else
break
fi
done
if [ URL Access failure!"
fi
done

方法3:错误次数保存到数组

URL_LIST=" www..com www.agasgf.com "
for URL in NUM -le 3 ]; do
HTTP_CODE= URL)
if [ NUM]= NUM下标, {#FAIL_COUNT[ ]} -eq 3 ]; then
echo "Warning: $URL Access failure!"
unset FAIL_COUNT[ ] #清空数组
fi
done
</pre>

10、检查MySQL主从同步状态

<pre style="margin: 0px; padding: 0px; overflow: auto; white-space: pre-wrap; color: rgb(51, 51, 51); font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">#!/bin/bash
USER=bak
PASSWD=123456
IO_SQL_STATUS= USER -p 0} ) #gsub去除冒号后面的空格
for i in {i%:*}
THREAD_STATUS= THREAD_STATUS" != "Yes" ]; then
echo "Error: MySQL Master-Slave THREAD_STATUS!"
fi
done
</pre>

动手练一练,让你的Shell功底上升一个段位!

㈣ shell脚本中以0开头的数字字符串怎样转换为数字

a="09"
echo $a

b=`expr $a + 0`
echo $b

㈤ 如何在shell脚本中使用变量

1、linux shell中的变量一般定义格式为:var=value。其中var是变量名称,=是赋值,value是给变量赋的值。比如下面的变量定义。

a=12;
b="helloworld"

2、注意变量名称的第一个字符不可以是数字,但是可以是下划线。如下示例则为非法的变量名。

3、要使用变量的值,在变量前面加上$符号即可。比如下面的示例:

123=123//这是错误的变量名称
_123=123//这是合法的。

㈥ 分享70个经典的 Shell 脚本面试题与答案

我们为你的面试准备选择了 70 个你可能遇到的 shell 脚本面试问题及解答。了解脚本或至少知道基础知识对系统管理员来说至关重要,它也有助于你在工作环境中自动完成很多任务。在过去的几年里,我们注意到所有的 linux 工作职位都要求脚本技能。

1) 如何向脚本传递参数 ?

./script argument

例子: 显示文件名称脚本

(LCTT 译注:谢谢某匿名访客的提醒,原题有误,修改之。)

2) 如何在脚本中使用参数 ?

第一个参数 : 2

例子 : 脚本会复制文件(arg1) 到目标地址(arg2)

3) 如何计算传递进来的参数 ?

4) 如何在脚本中获取脚本名称 ?

5) 如何检查之前的命令是否运行成功 ?

6) 如何获取文件的最后一行 ?

7) 如何获取文件的第一行 ?

8) 如何获取一个文件每一行的第三个元素 ?

9) 假如文件中每行第一个元素是 FIND,如何获取第二个元素

10) 如何调试 bash 脚本

将 -xv 参数加到 #!/bin/bash 后

例子:

11) 举例如何写一个函数 ?

12) 如何向连接两个字符串 ?

输出

HelloWorld

13) 如何进行两个整数相加 ?

输出

3

据 @kashu 的意见,本题的更佳回答为:

两个整数相加,还有若干种方法实现:

14) 如何检查文件系统中是否存在某个文件 ?

15) 写出 shell 脚本中所有循环语法 ?

for 循环 :

while 循环 :

until 循环 :

16) 每个脚本开始的 #!/bin/sh 或 #!/bin/bash 表示什么意思 ?

这一行说明要使用的 shell。#!/bin/bash 表示脚本使用 /bin/bash。对于 python 脚本,就是

17) 如何获取文本文件的第 10 行 ?

18) bash 脚本文件的第一个符号是什么

19) 命令:[ -z "" ] && echo 0 || echo 1 的输出是什么

20) 命令 “export” 有什么用 ?

21) 如何在后台运行脚本 ?

在脚本后面添加 “&”。

据 @kashu 的意见,更好的答案是:

大部分时间我们可能是远程使用Linux,我碰到过由于网络断线使得在后台运行的command &没了...

22) "chmod 500 script" 做什么 ?

使脚本所有者拥有可执行权限。

23) ">" 做什么 ?

重定向输出流到文件或另一个流。

24) & 和 && 有什么区别

25) 什么时候要在 [ condition ] 之前使用 “if” ?

当条件满足时需要运行多条命令的时候。

26) 命令: name=John && echo 'My name is $name' 的输出是什么

variable

27) bash shell 脚本中哪个符号用于注释 ?

28) 命令: echo ${new:-variable} 的输出是什么

variable

29) ' 和 " 引号有什么区别 ?

30) 如何在脚本文件中重定向标准输出和标准错误流到 log.txt 文件 ?

在脚本文件中添加 "exec >log.txt 2>&1" 命令。

31) 如何只用 echo 命令获取字符串变量的一部分 ?

例子:

32) 如果给定字符串 variable="User:123:321:/home/dir",如何只用 echo 命令获取 home_dir ?

33) 如何从上面的字符串中获取 “User” ?

34) 如何使用 awk 列出 UID 小于 100 的用户 ?

35) 写程序为用户计算主组数目并显示次数和组名

36) 如何在 bash shell 中更改标准的域分隔符为 ":" ?

37) 如何获取变量长度 ?

38) 如何打印变量的最后 5 个字符 ?

39) {variable: -10} 有什么区别?

40) 如何只用 echo 命令替换字符串的一部分 ?

41) 哪个命令将命令替换为大写 ?

42) 如何计算本地用户数目 ?

43) 不用 wc 命令如何计算字符串中的单词数目 ?

44) "export $variable" 或 "export variable" 哪个正确 ?

45) 如何列出第二个字母是 a 或 b 的文件 ?

46) 如何将整数 a 加到 b 并赋值给 c ?

47) 如何去除字符串中的所有空格 ?

48) 重写这个命令,将输出变量转换为复数: item="car"; echo "I like $item" ?

49) 写出输出数字 0 到 100 中 3 的倍数(0 3 6 9 …)的命令 ?

50) 如何打印传递给脚本的所有参数 ?

51) [ b ] 和 [ b ] 有什么区别

52) = 和 == 有什么区别

53) 写出测试 $a 是否大于 12 的命令 ?

[ $a -gt 12 ]

54) 写出测试 $b 是否小于等于 12 的命令 ?

[ $b -le 12 ]

55) 如何检查字符串是否以字母 "abc" 开头 ?

[[ $string == abc* ]]

56) [[ string == "abc " ]] 有什么区别*

57) 如何列出以 ab 或 xy 开头的用户名 ?

egrep " ab| xy" /etc/passwd|cut -d: -f1

58) bash 中 $! 表示什么意思 ?

后台最近执行命令的 PID.

59) $? 表示什么意思 ?

前台最近命令的结束状态。

60) 如何输出当前 shell 的 PID ?

echo $$

61) 如何获取传递给脚本的参数数目 ?

echo $#

(LCTT 译注:和第3题重复了。)

62) @ 有什么区别

63) 如何在 bash 中定义数组 ?

64) 如何打印数组的第一个元素 ?

65) 如何打印数组的所有元素 ?

66) 如何输出所有数组索引 ?

67) 如何移除数组中索引为 2 的元素 ?

68) 如何在数组中添加 id 为 333 的元素 ?

69) shell 脚本如何获取输入的值 ?

a) 通过参数

b) 通过 read 命令

70) 在脚本中如何使用 "expect" ?

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:593
制作脚本网站 发布:2025-10-20 08:17:34 浏览:888
python中的init方法 发布:2025-10-20 08:17:33 浏览:581
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:765
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:684
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1012
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:255
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:113
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:806
python股票数据获取 发布:2025-10-20 07:39:44 浏览:712