shell变量

一、自定义变量

1.1 自定义局部变量 
      在shell脚本文件中
      var_name=value
1.2 自定义常量
      readonly var_name
1.3 自定义全局变量
      在shell脚本文件中
      export var_name
二、特殊符号变量

1.1 $n: 用于获取命令的输入参数
      $0: 获取执行脚本的文件名称
      $1-$9: 获取第1个输入参数-第9个输入参数
      ${10}: 获取第10个输入参数(超过第9个参数,就需要使用{})

   示例:
   demo.sh
   #!/bin/bash
   echo "当前文本脚本文件:$0"
   echo "第一个输入参数:$1"
   echo "第二个输入参数:$2"
   echo "第十个输入参数:${10}"

1.2 $#:用于获取输入参数的个数

   示例:
   demo.sh
   #!/bin/bash
   echo "输入参数个数:$#"

1.3 $*和$@: 用于获取命令的所有输入参数
     1、若 $*和 $@ 不加双引号,则无区别,均输出所有输入参数对象列表
     2、若 $*和 $ @ 加双引号,
          "$*" 将所有的输入参数列表拼接成一个字符串输出
          "$@"将所有的输入参数列表单个单个字符串输出

   示例:
   demo.sh

   #!/bin/bash
   echo '使用$*直接输出:'$*
   echo '使用$@直接输出:'$@

   echo '循环遍历输出$*所有参数'
   for item in "$*"
    do 
     echo $item
    done 

   echo '循环遍历输出$@所有参数'
   for item in "$@"
    do 
     echo $item
    done 

  [root@vm-paas scwyfy]# bash  demo.sh hell wolrd java  
   使用$*直接输出:hell wolrd java
   使用$@直接输出:hell wolrd java
   循环遍历输出$*所有参数
   hell wolrd java
   循环遍历输出$@所有参数
   hell
   wolrd
   java

1.4 $?:用于获取shell命令执行返回的状态码,一般返回0表示执行成功,非0表示执行失败
示例:

   [root@vm-paas scwyfy]# echo java
   java
   [root@vm-paas scwyfy]# echo $?
   0

1.5 $$:用于获取当前shell环境进程的id
  
示例:
[root@vm-paas scwyfy]# echo $$
3425

 

posted @ 2024-04-09 17:13  scwyfy  阅读(11)  评论(0编辑  收藏  举报