每天学习一个shell技能 (1)

每天学习一个shell技能 (1)

准备

bash 环境位置

#!/bin/bash

#! 一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell

运行shell

  1. 作为可执行程序

    chmod +x ./mybash.sh
    ./mybash.sh
    
  2. 作为解释器参数

/bin/bash test.sh
/bin/php test.php
// 如果这样运行,文件内的第一行就可以不需要指定 解释器信息了

pwd

  1. 命令简介

    pwd :打印当前目录 ,命令以 绝对路径 的形式显示用户的 当前工作目录

  2. 用法

    pwd [-LP]

变量

定义变量

  • 定义变量时 不需要制定 $符号
  • 变量名和值、等号之间不能有空格

命名规范:

  • 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头
  • 中间不能有空格,可以使用下划线(_)
  • 不能使用标点符号
  • 不能使用bash里的关键字(可用help命令查看保留关键字)
user_name='kael linda'

使用变量

使用时,变量名前面加上$符号即可

your_name="qinjx"
echo $your_name
echo ${your_name}

花体括号 加不加都行,视情况而定。
加是为了区分变量边界

user_name="kaelinda"
echo  "I'm ${user_name}' brother"

只读变量

user_name="kaelinda"
readonly user_name
user_name="kael"

删除变量

unset variable_name
  • 删除变量删除之后的变量不可再使用
  • unset 命令不能删除只读变量

变量类型

  • 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
  • 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
  • shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行

shell 字符串

单引号

str='this is a string'
  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的
  • 单引号字串中不能出现单引号(对单引号使用转义符后也不行)

双引号

your_name='qinjx'
str="Hello, I know your are \"$your_name\"! \n"
  • 双引号里可以有变量
  • 双引号里可以出现转义字符

拼接字符串

your_name="qinjx"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !"

获取字符串长度

string="abcd"
echo ${#string} #输出 4

提取字符串

string="runoob is a great site"
echo ${string:1:4} # 输出 unoo

查找字符串位置

string="runoob is a great company"
echo `expr index "$string" is`  # 输出 8

以上脚本中 "`" 是反引号,而不是单引号 "'",不要看错了. 这是用了正则表达式匹配字符

你可能感兴趣的:(每天学习一个shell技能 (1))