ly2@DGX:~/sh$ vim canshu2.sh
#!/bin/bashecho $# # 输出命令行中所有参数的个数echo$*# 输出命令行中所有的参数,整体echo$@# 输出命令行中所有的参数,区分
ly2@DGX:~/sh$ ./canshu2.sh 11 22 33 44 55 canshu
6
11 22 33 44 55 canshu
11 22 33 44 55 canshu
ly2@DGX:~/sh$ vim canshu3.sh
#!/bin/bashecho"A total of $# parameters"echo"The parameters is:$*"echo"The parameters is:$@"
ly2@DGX:~/sh$ chmod 755 canshu3.sh
ly2@DGX:~/sh$ ./canshu3.sh 45 22 33 44 55 canshu
A total of 6 parameters
The parameters is:45 22 33 44 55 canshu
The parameters is:45 22 33 44 55 canshu
$*与$@的区别
ly2@DGX:~/sh$ vim canshu4.sh
#!/bin/bashfor i in"$*"# $*中的所有参数看成是一个整体,所以这个for循环只会循环一次doecho"The parameters is:$i"done
x=1
for y in"$@"# $@中的所有参数看成是独立的,所以“$@”中有几个参数,就会循环几次doecho"The parameters$x is:$y"
x=$(($x+1))done
ly2@DGX:~/sh$ chmod 755 canshu4.sh
ly2@DGX:~/sh$ ./canshu4.sh 11 22 33 44
The parameters is:11 22 33 44
The parameters1 is:11
The parameters2 is:22
The parameters3 is:33
The parameters4 is:44
ly2@DGX:~/sh$ ls# 正确命令执行
canshu1.sh canshu3.sh hello.sh sum.sh canshu2.sh canshu4.sh
ly2@DGX:~/sh$ echo$?# 返回0
0
ly2@DGX:~/sh$ lsafaf # 错误命令执行
lsafaf: command not found
ly2@DGX:~/sh$ echo$?
127 # 返回非 0,127
ly2@DGX:~/sh$ ls ad # 查找不存在的文件
ls: cannot access 'ad': No such file or directory
ly2@DGX:~/sh$ echo$?# 返回非 0,2
2
$$:进程号
ly2@DGX:~/sh$ vim canshu5.sh
#!/bin/bashecho"The current process is $$"# 输出当前进程的PID# 这个PID就是当前这个脚本执行时,生成的进程的PIDfind /home/ly2 -name hello.sh&# 使用find命令在root目录下查找hello.sh文件# 符号&表示把命令放入后台执行,工作管理在系统管理一章介绍echo"The last one Daemon process is $!"
ly2@DGX:~/sh$ chmod 755 canshu5.sh
ly2@DGX:~/sh$ ./canshu5.sh
The current process is 45555 # 当前脚本执行的进程号
The last one Daemon process is 45556 # 最后运行程序的进程号
ly2@DGX:~/sh$ /home/ly2/sh/hello.sh # 最后进程的输出结果,查找出的路径
ly2@DGX:~/sh$ vim canshu6.sh
#!/bin/bashread -t 30 -p "Please input your name: " name
# 提示 “请输入姓名”,并等待30秒,把用户的输入保存入变量name中echo"Name is $name"# 输出传入变量的值read -s -t 30 -p "Please enter your age: " age
# 年龄是隐私,所以用“-s”选项隐藏输入echo"\n"# 空出一行echo"Age is $age"read -n 1 -t 30 -p "Please select your gender[M/F]: " gender
#使用“-n 1”选项,只接收一个输入字符就会执行(不用输入回车)echo"\n"echo"Sex is $gender"
ly2@DGX:~/sh$ chmod 755 canshu6.sh
ly2@DGX:~/sh$ ./canshu6.sh # 运行结果
Please input your name: as
Name is as
Please enter your age:
Age is 24
Please select your gender[M/F]: F
Sex is F