展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

shell变量

  • shell脚本
[root@localhost ~]# cd /home
# 编辑
[root@localhost home]# vi test.sh
# 编写如下
#!/bin/bash
echo "Hello World !"
# 设置权限
[root@localhost home]# chmod +x ./test.sh
# 执行
[root@localhost home]# ./test.sh
Hello World !
  • 变量命名规范
# 只包含字母、数字和下划线
# 不能以数字开头
# 避免使用 Shell 关键字
# 使用大写字母表示常量
# 避免使用特殊符号
# 避免使用空格
# 等号两侧避免使用空格

RUNOOB="www.runoob.com"
LD_LIBRARY_PATH="/bin/"
_var="123"
var2="abc"
  • 打印变量
your_name="qinjx"
echo $your_name
echo ${your_name}
  • 设置只读变量
myUrl="https://www.google.com"
readonly myUrl
  • 删除变量,不会输出内容
#!/bin/sh

myUrl="https://www.runoob.com"
unset myUrl
echo $myUrl
  • 字符串变量
# 单引号
str='this is a string'
# 双引号
# 双引号里可以有变量
# 双引号里可以出现转义字符
str="Hello, I know you are \"$your_name\"! \n"

# 获取字符串长度
string="abcd"
echo ${#string}   # 输出 4
echo ${#string[0]}   # 输出 4

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

# 查找索引位置,查找字符 i 或 o 的位置
string="runoob is a great site"
echo `expr index "$string" io`  # 输出 4
  • 数组
# 定义数组
# 方式1
array_name=(value0 value1 value2 value3)

# 方式2
array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen

# 获取数组中的值
# 获取指定下标n
valuen=${array_name[n]}
# 获取数组中所有值
echo ${array_name[@]}

# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
length=${#array_name[n]}

# 输出数组的所有元素
echo "数组的元素为: ${site[*]}"
echo "数组的元素为: ${site[@]}"
# 如果是关联数组,可以输出数组的所有键
echo "数组的键为: ${!site[*]}"
echo "数组的键为: ${!site[@]}"
  • 关联数组
# 创建一个关联数组num
declare -A num=(["name1"]="goudan" ["name2"]="gousheng" ["name3"]="gougou")

# 方式2
declare -A num
site["name1"]="goudan"
site["name2"]="gousheng"
site["name3"]="gougou"

# 输出打印
echo ${num["name1"]}
  • 注释
# 单行注释
# 每一行加一个 # 号

# 多行注释
:<<EOF
注释内容...
注释内容...
注释内容...
EOF
posted @ 2024-05-08 17:36  DogLeftover  阅读(2)  评论(0编辑  收藏  举报