博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell基础2
阅读量:6939 次
发布时间:2019-06-27

本文共 1726 字,大约阅读时间需要 5 分钟。

BASH变量

第一小节

变量设置规则

  1. 在bash中,变量的默认类型是字符串型。
  2. 变量用等号连接值,等号两侧不能有空格。
  3. 变量值中如果有空格,需要用单引号和双引号包起来。
  4. 如果把命令的结果作为变量值赋予变量,需要用反引号或$()包含命令。

变量分类

  1. 用户自定义变量:只在当前的shell中生效。
  2. 环境变量:名字不能改,可以改值。也可以手工增加新的环境变量。在当前shell和子shell中生效。(除了把环境变量写在配置文件中,就会在所有的shell中生效)
  3. 位置参数变量:不能新增新的变量,属于预定义变量。
  4. 预定义变量,不能改变名字和值。

变量调用

echo $name

变量查看

set

变量删除

unset name

第二小节 环境变量

设置环境变量

export 变量名=变量值#申明变量 如:

shell基础2

env #查询变量

PATH:系统查找命令的路径。

PATH变量增加:"$PATH":/root/sh

shell基础2

第三小节 位置参数变量

shell基础2

例子:

shell基础2
shell基础2

第四小节 预定义变量

shell基础2

  • find /root -name hello.sh &(&代表将这条命令放入后台执行)

1.接受键盘输入

read [选项][变量名]

选项:
-p “提示消息”:在等待read输入时,输出提示消息
-t 秒数 :等待用户输入的时间范围设定
-n 字符数:接收指定的字符数,就会执行
-s :隐藏输入的数据,可用作密码的设定

第五小节 变量运算符

1. declare 声明变量类型

declare [+/-][选项]变量名  declare -i c=$a+$b

选项:

-:给变量设定类型属性
+:取消变量的类型属性
-i:将变量声明为整数型
-x:将变量声明为环境变量
-p:显示指定变量的被声明的类型

2. expr或let

如:dd=$(expr $aa + $bb)注意:+号左右两侧必须有空格。

3."$((式子))" or "$[式子]" 建议使用这种,比较简单方便。

运算符的优先级

shell基础2

运算符的测试和替换(不用死记硬背,需要的时候查查就好,个人认为)

shell基础2

第六小节 环境配置文件

1. 基础

  • source命令:source 配置文件 或 .配置文件
  • 主要的环境变量配置文件:(一层一层调用)

    /etc/profile :USER变量,LOGNAME变量,MAIL变量,PATH变量,HOSTNAME变量,umask,调用/etc/profile.d/.sh
    /etc/profile.d/
    .sh
    ~/.bash_profile:调用~/.bashrc,在PATH变量后面加入了“:$HOME/bin”这个目录
    ~/.bashrc:定义默认别名,alias,调用/etc/bashrc
    /etc/bashrc:PS1变量,umask,PATH变量,调用/etc/profile.d/*.sh

    ![](https://s1.51cto.com/images/blog/201809/25/e6c193b3052f7fc6281b37a25a33bbf9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)“~”家目录,更改当前用户家目录,只对当前用户生效。/etc/profile:有登陆的过程;    /etc/bashrc:无登陆的过程;后面的会覆盖前面的。

2. 其他配置文件

  • 注销时生效的环境变量配置文件:~/.bash_logout
  • 历史命令配置:~/bash_history
  • 本地终端欢迎信息:/etc/issue.net(转义符不能使用)

shell基础2

*是否显示此欢迎信息,由ssh的配置文件/etc/ssh/sshd_config决定,加入"Banner /etc/issue.net"行才能显示(记得重启SSH服务)
/etc/motd :本地和远程登陆都可以显示欢迎信息。

转载于:https://blog.51cto.com/13973803/2285330

你可能感兴趣的文章
CSharp设计模式读书笔记(12):享元模式(学习难度:★★★★☆,使用频率:★☆☆☆☆)...
查看>>
Java内存泄露原因详解
查看>>
2017四月TOP100电商类App排行榜出炉
查看>>
配置struts2拦截器
查看>>
互联网“平滑数据迁移”架构技术实践
查看>>
SqlServer2005 性能调校之 利用Sql Server Profiler捕捉阻塞事件
查看>>
云时代架构读后感
查看>>
Java GC性能优化实战
查看>>
iOS开发线程之NSThread
查看>>
C语言断言
查看>>
Java设计模式之职责链设计模式
查看>>
课后作业-阅读任务-阅读提问-3
查看>>
JS数组追加数组采用push.apply的坑
查看>>
触发器,视图
查看>>
【引用】高手新手都能用的140个技巧
查看>>
Eclipse智能提示引用
查看>>
c# DbHelper
查看>>
100多行代码实现6秒完成50万条多线程并发日志文件写入
查看>>
软件测试
查看>>
如何避免adtbundle新建项目总是产生一个appcompat_v7和fragment_main.xml
查看>>