您当前的位置: 首页 >  彭世瑜

把书读薄-Shell入门基础

彭世瑜 发布时间:2019-07-04 15:41:49 ,浏览量:4

运行

1、作为可执行程序

#!/bin/bash           # 指定解释此脚本文件的程序

$ chmod a+x test.sh   # 使脚本具有执行权限
$ ./text.sh           # 执行脚本

./test.sh             # 在当前目录找
test.sh               # 去 PATH 里寻找

2、作为解释器参数

$ bash test.sh
变量
key="value"     # 定义变量, 变量名和等号之间不能有空格
readonly key    # 只读变量, 再次赋值会报错

echo $key     # 使用变量, 使用变量要在变量名前面加美元符号
echo ${key}   # 识别变量的边界

unset key     # 删除变量

变量类型

  1. 局部变量
  2. 环境变量
  3. shell变量
字符串

字符串可以用单引号,也可以用双引号,也可以不用引号

单引号:原样字符串,不可以有变量和转义字符 双引号:可以有变量和转义字符

字符串拼接

name="Tom"

echo "hi "$name"!"  # hi Tom!
echo "hi ${name}!"  # hi Tom!
echo 'hi ${name}!'  # hi ${name}!
echo ${#name}      # 字符长度 3
echo ${name:1:4}   # 字符串截取 om 
数组

Bash Shell只支持一维数组, 下标由0开始

# 定义数组, "空格"分割
names=("Tom" "Jack")

ages=(
23
24
)

# 数组元素赋值
names[2]="Jimi"

# 获取数组元素
echo ${names[2]}  # Jimi

# 获取数组所有元素
echo ${ages[@]}   # 23 24
echo ${ages[*]}   # 23 24

# 获取数组的长度
echo ${#names[@]}  # 3
注释
# 单行注释

: file.txt          # 结果重定向

示例:读取输入并输出

#!/bin/bash

read -p "请输出用户名:" content   # -p提示文字
read -p "请输出密码:" -s password  # -s 隐藏输入内容
echo -e "\n用户名: ${content}\n密码: ${password}"

: file1          # 输出重定向
command1 >> file1         # 追加输出重定向
command 2 > file          # stderr重定向
command > file 2>&1       # 合并stdout和stderr
command1  /dev/null 2>&1  # 屏蔽输出

示例

$ echo -e 'hello world\nhi china' > text.txt

$ cat text.txt
hello world
hi china

$ wc -l             
关注
打赏
1688896170
查看更多评论
0.0540s