linux shell编程之变量和bash配置文件(第一篇)
编程语言有两类
强类型:如C语言。数据具有其特定的类型,先声明定义后才能使用。数据运算时必须符合类型要求(如不能把字符串类型数据直接与整型数据做算数运算)
弱类型:如shell。数据默认为字符型,不用事先声明。数据运算时会自动转换数据类型。
1、变量
变量命名规则
变量类型
变量引用
1.1、变量命名规则:
- 变量由字母、数字、下划线组成。
- 不能由数字开头
1.2、变量类型:本地变量、环境变量、局部变量、特殊变量(内置)、参数变量、只读变量。
注意如果变量没有定义在shell的配置文件,那么他的生命周期只是当前shell进程,一退出就失效。
作用域示例:
本地变量:可以看到再次打开一个bash时使用echo $test并不会输出s1。所以本地变量的作用域为当前shell。
环境变量:子shell也起作用
变量定义示例:
1.3、变量引用(对上表的补充):

2、shell脚本编程:利用系统上的命令和编程组件的面向过程的编程。
2.1bash的配置文件:profile类和bashrc类
profile类:为交互式登录的shell提供配置
bashrc类:为非交互式登录的shell提供配置
交互式:通过终端输入用户名和密码登录后打来shell
通过su - USERNAME或su -l USERNAME登录后打开的shell
配置文件读取顺序:/etc/profile-->/etc/profile.d/*-->~/.bash_profile-->/etc/bashrc
非交互式:通过su USERNAME执行的登录
GUI图形界面下打开的终端
运行脚本文件中打开的shell
配置文件读取顺序:~/.bashec-->/etc/bashrc--->/etc/profile.d/*
总结:两者的区别可以简单的说成是——是否需要输入密码。
2.2配置文件修改后生效示例
注意,修改配置文件不会立即生效可以使用.(英文点号)或者source来强制重读配置文件,使得修改立刻生效
首先修改.bashrc文件添加alias ech='echo $PATH'
使用alias并没有打印出我们刚添加的命令别名,使用ech直接报错
使用source FILE_NAME重读配置文件后使用alias命令,可以看到我们新添加的ech。
shell编程其他文章请点击下边链接
linux shell编程之变量和bash配置文件(第一篇)的更多相关文章
- Linux Shell编程、变量、控制语句
为什么要学习Shell编程 1)Linux运维工程师在进行服务器集群管理时,需要编写Shell程序来进行服务器管理. 2)对于JavaEE和Python程序员来说,工作的需要,你的老大会要求你编写一些 ...
- Linux —— Shell编程之变量赋值和引用
Linux的shell编程是一种非常成熟的编程语言,它支持各种类型的变量.有三种主要的变量类型:环境变量.内部变量和用户变量. 环境变量(environment variable)是系统环境的一部分, ...
- Linux学习——shell编程之变量
shell编程之变量:Linux shell编程基础中的变量. 包括Bash变量的分类和各变量的详细使用,如:用户自定义变量.环境变量.语系变量.位置参数变量和预定义变量. 1:什么是Bash变量? ...
- linux —— shell 编程(文本处理)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...
- linux —— shell 编程(编程语法)
导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...
- linux shell编程总结
linux shell编程总结 本周学习了unix/linux shell编程,参考的是<LINUX与UNIX Shell 编程指南>,David Tansley著:徐焱,张春萌等译,由机 ...
- 【shell编程基础0】bash shell编程的基本配置
前面一篇“shell编程之变量篇”主要讲述下shell编程的变量的基本知识:设置变量的方式,自定义变量和环境变量的差别,变量的替换.删除.测试等. 这一篇主要是讲述在bash shell下的一些基本配 ...
- Linux Shell编程参考大全
本文记录Linux Shell编程中常用基本知识,方便快速入门以及查询使用. 本文主要分为以下几个部分: 一.Shell中的变量 任何编程语言中,有关变量的定义,作用范围,赋值等都是最最基础的知识. ...
- linux shell 编程参考
#!/bin/bash my_fun() { echo "$#" } echo 'the number of parameter in "$@" is '$(m ...
随机推荐
- Charles抓包工具的使用(一)
前提:charles的说明 Charles其实是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的.该软件是用Java写的,能够在W ...
- Andriod项目结构
在Android Studio第一次创建一个项目,点击左侧的Project选项卡,在Project窗口下有几个不同的视图,默认的是名为Android的视图: 对于大部分的开发工作,我们只要在Andro ...
- Node环境搭建--详细教程
下载地址: https://nodejs.org/en/download/ 版本:10.15.3 检测是否安装成功:我之前安装的是10.14版本
- 【原创】从零开始搭建Electron+Vue+Webpack项目框架,一套代码,同时构建客户端、web端(二)
摘要:上篇文章说到了如何新建工程,并启动一个最简单的Electron应用.“跑起来”了Electron,那就接着把Vue“跑起来”吧.有一点需要说明的是,webpack是贯穿这个系列始终的,我也是本着 ...
- Docker应用部署
MySQL: #拉取mysql镜像 docker pull centos/mysql--centos7 #创建容器 #-p 端口映射 -e添加环境变量MYSQL_ROOT_PASSWORD 是root ...
- [2018-01-12] laravel--ORM
建立模型 <?php namespace App; use Illuminate\Database\Eloquent\Model; class Student extends Model { / ...
- 自闭枪战C++
Player1: ad左右移动,w跳,jk发射子弹 Player2: 左右键左右移动,上键跳,23发射子弹 #include <bits/stdc++.h> #include <co ...
- Mybatis:CRUD操作
提示: Mapper配置文件的命名空间为对应接口包名+接口名字,这个经常会忘记和搞错的!! select标签 在接口中编写三个查询方法 //获取全部用户List<User> selectU ...
- [无用]LNC李纳川的日常NC操作
NC说他从不CE NC说他想明白了 表示嘲讽. 好吧好吧其实还是有一个美好的结局的. 虽说我在嘲讽他,但我并不会做TAT 大神吹牛没毛病,我个蒟蒻还是老老实实刷水题吧.
- Maven配置setting.xml详细说明
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://mav ...