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

本文介绍了Linux下shell脚本的基础知识,包括运行机制、编写第一个脚本、执行方式、变量定义与引用、字符串引用规则、调用Linux命令、if语句、逻辑运算符、循环结构、文件操作及参数传递等。通过实例讲解,帮助读者快速掌握shell脚本编写技巧。

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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值