“Linux-2020-spring-5-13”的版本间的差异
跳到导航
跳到搜索
(→命令行参数) |
|||
| 第58行: | 第58行: | ||
== 命令行参数 == | == 命令行参数 == | ||
| + | 给shell脚本传递参数 | ||
| + | 运行时指定shell脚本的命令行参数 | ||
| + | 例如:./a.sh 'abc' 232 | ||
| + | 类似于ls /bin | ||
C语言中是int main(int argc, char *argv[]),通过argc和argv来实现的。 | C语言中是int main(int argc, char *argv[]),通过argc和argv来实现的。 | ||
| − | + | 参数的含义(和函数参数是一致的) | |
| + | $# -----参数的个数 | ||
| + | $* -----字串 | ||
| + | $0 -----第0个参数 | ||
| + | $1 -----第1个参数 | ||
| + | $@ -----数组 | ||
| + | $? -----获取返回值 | ||
| + | |||
| + | <nowiki> | ||
| + | #!/bin/bash # 注意视频中写错了,少了感叹号! | ||
| + | # 假设这个shell脚本的文件名是:a.sh | ||
| + | echo $# | ||
| + | echo $* | ||
| + | echo $@ | ||
| + | echo $0 | ||
| + | echo $1 | ||
| + | </nowiki> | ||
| + | |||
| + | 执行过程: | ||
| + | $ ./a.sh 'abc' 123 93 -2 # 注意,'./a.sh'是第0个参数 | ||
== examples == | == examples == | ||
2020年5月13日 (三) 04:23的版本
复习并举例
- shell中变量的定义
注意变量两边不能有空格
- 复杂语句
- shell脚本(求和的例子)
#!/bin/bash
sum=0
for ((i=1;i<101;i=i+1)); do
sum=$(($i+$sum))
done
echo $sum
shell脚本的运行方式
1、bash x.sh
2、chmod +x x.sh
./x.sh
- “#!/bin/bash ”的作用
1、告诉shell这个文件要用什么命令打开,进而解释(或运行)
2、告诉shell用哪种shell(bash/csh/sh/ksh...)运行文件。
PATH环境变量,不建议将当前目录'.'放到PATH中
和awk是类似的
shell中函数的定义和使用
函数传参
$# -----参数的个数 $* -----字串 $0 -----第0个参数 $1 -----第1个参数 $@ -----数组 $? -----获取返回值
#!/bin/bash # 注意视频中写错了,少了感叹号!
function sum() {
echo $#
echo $*
echo $0
echo $1
}
sum 1 2 7 'a' # 注意函数调用,不要括号
命令行参数
给shell脚本传递参数 运行时指定shell脚本的命令行参数 例如:./a.sh 'abc' 232 类似于ls /bin C语言中是int main(int argc, char *argv[]),通过argc和argv来实现的。
参数的含义(和函数参数是一致的)
$# -----参数的个数 $* -----字串 $0 -----第0个参数 $1 -----第1个参数 $@ -----数组 $? -----获取返回值
#!/bin/bash # 注意视频中写错了,少了感叹号! # 假设这个shell脚本的文件名是:a.sh echo $# echo $* echo $@ echo $0 echo $1
执行过程:
$ ./a.sh 'abc' 123 93 -2 # 注意,'./a.sh'是第0个参数
examples
1、run0.sh函数 2、run1.sh函数 3、run2.sh函数 4、run3.sh函数