栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

linux----shell基础

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux----shell基础

1、shell的解析过程

        

 tokens关键字指的是:将你输入的命令拆成不能在拆的时候一步步开始检查

eval相当于执行两次    第一次是进行替换,第二次是作为命令去执行

1.eval命令将会首先扫描命令行进行所有的替换,然后再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时候被称为复杂变量

例如:
    test.txt内容:hello shell world!
    myfile="cat test.txt"
    (1)echo $myfile  #result:cat test.txt
    (2)eval $myfile  #result:hello shell world!
    从(2)可以知道第一次扫描进行了变量替换,第二次扫描执行了该字符串中所包含的命令

 

2、shell初始化过程及文件

登录shell和非登录shell

 

Shell启动配置文件的区别
/etc/profile:配置全局环境变量(变量和函数,别名),影响所有用户
~/.bash_profile :配置个人环境变量,影响一个用户
/etc/bashrc :配置全局的别名或者函数,影响所有用户
~/.bashrc :配置个人别名或者函数,影响一个用户(rc指的是:running config---》运行哪些配置)

在用户家目录下,每个用户都有的配置文件,只对单独的用户有效。  (局部地区配置文件)

.bash_profile:用户每次登录时执行  --->.bashrc
.bashrc:每次进入新的Bash环境时执行(打开终端),定义别名  ---->/etc/bashrc  
.bash_logout:用户每次退出登录时执行
.bash_history  保存上次用户注销前使用的命令

 3、shell脚本的四种执行方式

1 、 bash   student_name.sh     和     ./student_name.sh(这两个是开启一个子bash进程来执行)

 2、  .  student_name.sh     和   source  student_name.sh (这两个是在当前bash里执行)

 

 4、产生子进程的四种方式

1:&,提交后台作业

 2:管道    |

 3:括号命令列表 ()操作符

 4:执行外部脚本、程序    bash

 

 五、位置变量

预定义变量
$#:命令行中位置变量的个数
$*:所有位置变量的内容(较少使用)
$@:所有位置变量的内容
$0:当前执行的脚本文件名
$$ :当前shell的PID值, echo $$; ps $$, 常用作临时变量的后缀
$?:上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0值表示执行异常或出错
$RANDOM :随机数,可以作为临时文件名
    touch  abc$RANDOM.txt

 

 脚本里位置变量传递到函数的自增方法:

((n++))

((++n))

let n++

let ++n 

例如:使用for循环将所有的位置变量赋值给脚本里的变量
y=1
for  i in $*
do
    eval num$y=$i
    ((y++))
done

 

 间接引用

[root@localhost lianxi]# a=10
[root@localhost lianxi]# b=a
[root@localhost lianxi]# echo b
b
[root@localhost lianxi]# echo ${!b}
10
[root@localhost lianxi]# 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/642178.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号