Musel's blog

Shell

字数统计: 417阅读时长: 1 min
2022/03/12

shell脚本基础

shell脚本运行方式

可执行程序

  • 头文件 ·#!/bin/bash,保证我们的脚本默认会使用bash。#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。
  • 添加权限 chmod +x my.sh
  • 传递参数:$n就代表第几个参数,而$0也就是命令
  • 执行命令 ./my2.sh msg
    • 一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。

      解释器参数

  • /bin/sh test.sh
  • 不需要在第一行指定解释器信息

shell变量

显式赋值

  • 定义变量时,不加$
  • 变量与赋值=间无空格
  • 不能使用bash关键字。help命令查看
  • readonly只读变量
  • unset命令可以删除变量,不能删除只读变量
  • 可二次赋值
    your_name="tom"
    echo $your_name
    your_name="alibaba"
    echo $your_name
    

    语句赋值

    for file in `ls /etc`
    for file in $(ls /etc)
    

    使用变量

  • $
  • {}识别变量边界;echo "I am good at ${skill}Script"

字符串

  • 单引号:
    • 字符串中的变量无效
    • 不能出现单个的单引号,不能转义
    • 可成对出现,作为字符串拼接
  • 双引号可以出现变量和转义字符
    your_name="runoob"
    greeting="hello, "$your_name" !" 
    greeting_2='hello, '$your_name' !'
    # 均输出hello, runoob !
    
    ```
  • 字符串长度
    • $
CATALOG
  1. 1. shell脚本运行方式
    1. 1.1. 可执行程序
    2. 1.2. 解释器参数
  2. 2. shell变量
    1. 2.1. 显式赋值
    2. 2.2. 语句赋值
    3. 2.3. 使用变量
    4. 2.4. 字符串