您的位置:首页 > 运维架构 > Linux

Linux下的shell脚本(bash,sh)简单介绍 学习笔记

2020-07-15 04:33 85 查看

1 shell脚本的运行机制

解释运行,无需编译链接.

2 第一个shell脚本

hello.sh

#!/bin/sh
echo "hello.world"

#为注释符,第一句表示shell程序被/bin目录下的sh解释器执行.
第二句 echo 相当于printf .

3 Linux下执行shell脚本的三种方法

  1. ./hello.sh
  2. source hello.sh
  3. bash hello.sh (bash是脚本解释器)

输出结果是

hello.world

4 shell中的变量定义和引用

  1. shell是弱类型语言,直接定义并赋值(用=号)即可,不需加类型,并且赋值时不能有空格.
  2. 变量定义后可以再次赋值,覆盖前面的值
  3. 变量引用要$号, $var 或者 ${var}

5 shell中无引号,单引号和双引号区别

  1. 无引号和单引号,双引号均可以用来输出字符串
  2. 但是无引号和单引号不能输出转义字符和 “

6 shell中调用linux命令

使用 反引号``括起来或者直接执行

7 shell中的if语句

if [ -f a.txt ];then
echo "yes"
else
echo "no"
touch a.txt
fi

如果存在a.txt文件则打印yes ,不存在则打印no,并创建a.txt

8 shell中的逻辑与&&和逻辑或||与简写if表达式相结合

str=" "
[ -z $str ] || echo "fei kong"    #-z表示字符串是否为空。如果str为空(前面为真) ,后面不执行。 逻辑或:前面为真后面不执行
[ -z $str ] && echo "kong"        #如果str非空(前面为假) ,后面不执行。 逻辑与:前面为假,后面不执行

9 shell中的for循环和while循环

for i in `ls`
do
echo $i
done

打印当前文件列表

i=1
j=5
while [ $i -lt $j ]     #-lt表示小于
do
echo $i
i=$(($i + 1))       #i++
done

结果打印出1,2,3,4

10 使用echo创建和追加输入文件

  1. 使用echo创建一个新文件并使用 “>” 将一些内容传入文件
  2. 使用echo和">>"追加内容到文件
echo "#include <stdio.h>
int main(void)
{
return 0;
}" > a.c

echo "test" >> a.c

结果是创建了a.c文件,文件内容如下:

#include <stdio.h>
int main(void)
{
return 0;
}
test

11 case语句

case语句执行完一个选择后自动退出case(每个选择自带break)

i=1
case $i in
1) echo "1";;
2) echo "2";;
esac

12 shell传参

  1. 内置特定符号表示参数
    $#:表示调用shell时传参个数(只算有效参数,$0不算);
    $0:执行这个shell程序的解析程序的名字;
    $1, $2…:表示传递个各有效参数;

  2. shift指令可以移除当前第一个有效参数

echo $# $0 $1 $2
shift
echo $# $0 $1 $2

传进两个参数a,b,结果如下:

yt@yt-virtual-machine:/mnt/hgfs/Share_Linux/shell_case$ ./shell.c a b
2 ./shell.c a b
1 ./shell.c b
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: