每天学习一个shell技能 (1)
准备
bash 环境位置
#!/bin/bash
#!
一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell
运行shell
-
作为可执行程序
chmod +x ./mybash.sh ./mybash.sh
作为解释器参数
/bin/bash test.sh
/bin/php test.php
// 如果这样运行,文件内的第一行就可以不需要指定 解释器信息了
pwd
-
命令简介
pwd
:打印当前目录 ,命令以绝对路径
的形式显示用户的 当前工作目录 -
用法
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
以上脚本中 "`" 是反引号,而不是单引号 "'",不要看错了. 这是用了正则表达式匹配字符