Shell入门02

特殊变量:$n

  • $0 获取当前脚本的名称
  • $1 获取第一个参数
  • $2 获取第二个参数
    .....
  • 如果要获取第10个以后的参数请使用${10}、${11}...如果不加大括号的话,比如$10或误以为获取的是第一个参数再拼接0
  • $# 获取所有参数的个数
  • $* 获取所有的参数
  • $@ 也是获取所有的参数
  • 以上两个当不加双引号时,输出的效果都是一样的,如格式为: "$1 、$2 ...$n"
  • 如果加上双引号后,$@获取一组参数列表对象, 格式为: "$1"、 "$2" "$n",通过循环就可以看出来
echo '循环输出$*的参数'
for item in "$*"
do
  echo $item
done

echo ------------------------------------------

echo '循环输出$@的参数'
for item in "$@"
do
  echo $item
done

image

  • $?获取上条命令的退出状态码,或函数返回值,返回0代表执行成功,非0代表执行失败
  • $$获取当前shell环境的进程id

image

Shell环境的加载原理

  • 用户进入linux系统就会初始化shell环境,就会加载系统配置文件和用户个人配置文件中的环境变量

  • shell分为登录环境和非登录环境

    • 登录环境是指:需要用户名和密码登录的shell环境
    • 非登录环境是指:不需要用户名和密码登录的shell环境
  • shell配置文件分为全局配置文件和用户个人配置文件

    • 全局:/etc/profile、 /etc/profile.d/*.sh 、/etc/bashrc
    • 个人:/.bash_profile、/.bashrc
  • 环境变量加载初始过程
    image

  • 如果验证当前是登录环境还是非登录环境:使用$?

    • 如果返回的是-bash说明是登录环境
    • 如果返回的是bash说明是非登录环境
  • 非登录环境切换登录环境如: su testuser - l (输入密码)

  • 登录环境切换为非登录环境输入:bash

  • 如再非登录环境/.bashrc中添加了环境变量 (环境变量中,变量名建议都大写),如果要立马生效,需要重载配置文件

TESTA=888
export TESTA

使用source /home/xxx/.bashrc

posted @ 2021-08-27 20:07  弩哥++  阅读(27)  评论(0编辑  收藏  举报