专业编程基础技术教程

网站首页 > 基础教程 正文

SHELL变量 您了解吗

ccvgpt 2024-08-19 12:26:40 基础教程 9 ℃

Shell变量

删除变量

SHELL变量 您了解吗

unset 变量


shell位置变量


  1. $1 运行shell程序的第一个参数
  2. $2 运行shell程序的第二个参数
  3. $num 依次类推,但是最多只能到$9
  4. $# 代表shell程序的所有参数的个数
  5. $* $@ 将所有的参数作为一个整体,但是有更细微的区别

$*将所有的参数作为一个整体,$@将所有的参数分别作为个体对待

  1. $ 代表当前进程的ID号码
  2. $? 代码程序的退出代码(一般0代表程序执行成功,非0代表命令执行失败)

一个脚本

[root@pa2 tmp]# sh 6666.sh lijinghua sunwangli niecongcong duanyuxi

lijinghua >>>>我是第一个参数

sunwangli >>>>我是第二个参数

4 >>>>我是参数的总数

lijinghua sunwangli niecongcong duanyuxi >>>>我是所有参数的内容

lijinghua sunwangli niecongcong duanyuxi >>>>我是所有参数的内容,但是我把所有参数作为一个个体来看待

23384 >>>>我是当前执行shell进程的ID号码

0 >>>>我是当前程序的退出代码

[root@pa2 tmp]# cat 6666.sh

#!/bin/bash

echo"$1 >>>>我是第一个参数"

echo"$2 >>>>我是第二个参数"

echo"$# >>>>我是参数的总数"

echo"$* >>>>我是所有参数的内容"

echo"$@ >>>>我是所有参数的内容,但是我把所有参数作为一个个体来看待"

echo"$ >>>>我是当前执行shell进程的ID号码"

echo"$? >>>>我是当前程序的退出代码"


变量的返回值

  • 否则返回 ${name:-word} 如果name存在且非null,否则返回word
  • 否则设置 ${name:=word} 如果name存在且非null,否则设置为word
  • 否则显示 ${name:?message} 如果name存在且非null,则返回name:message
  • 返回word,否则返回null ${name:+word} 如果name存在且非null,则返回word,否则返回null

变量的删除和替换

  • ${varible#key} 从头开始删除关键词,执行最短匹配
  • ${varible##key} 从头开始删除关键词,执行最长匹配
  • ${varible%key} 从尾开始删除关键词,执行最短匹配
  • ${varible%%key} 从尾开始删除关键词,执行最长匹配
  • ${variable/old/new} 将old替换为new,仅替换第一个出现的old
  • ${variable//old/new} 将old替换为new,替换所有出现的old
  • 示范

[root@pa2 ~]# usr=$(head -1 /etc/passwd) #将$()中的变量赋值给usr

[root@pa2 ~]# echo $usr

root?0:0:root:/root:/bin/bash

[root@pa2 ~]# echo ${usr#*:}

x:0:0:root:/root:/bin/bash

[root@pa2 ~]# echo ${usr##*:}

/bin/bash

[root@pa2 ~]# echo ${usr%:*}

root?0:0:root:/root

[root@pa2 ~]# echo ${usr%%:*}

root

[root@pa2 ~]# echo ${usr/root/admin}

admin?0:0:root:/root:/bin/bash

[root@pa2 ~]# echo ${usr//root/admin}

admin?0:0:admin:/admin:/bin/bash

一个脚本

#!/bin/bash

foo() {

# Whatever. An error occurred and I'm returning -1

return -1

}

bar() {

foo

if [ "$?" = "-1" ]; then

# -1 is my "error code" and I'm returning it

exit -1

fi

}

bar # Calls the "bar" function

Tags:

最近发表
标签列表