“Linux-2020-spring-5-13”的版本间的差异

来自SUDA-HLT
跳到导航 跳到搜索
第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来实现的。
  
  
−
    $nohup bash run0.sh &:后台运行run0.sh
+
参数的含义(和函数参数是一致的)
 +
  $# -----参数的个数
 +
  $* -----字串
 +
  $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函数

C语言中的多维矩阵(高效实现)

main.c函数