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 ...
随机推荐
- Java多线程编程(一)Java多线程技能
一.进程和多线程的概念以及线程的优点 打开Windo任务管理器可以看到很多正在运行着的exe程序,完全可以将运行在内存中的exe文件理解成进程,进程是受操作系统管理的基本运行单元. 线程可以理解成在进 ...
- (一) kinect概述
Kinect可以进行身体节点定位,姿势定位,人脸识别等功能,在此先做简单介绍,后续主要介绍插件的应用,毕竟自己开发识别过程太消耗时间. (注1:Kinect官方虽然提供了Unity的APi,但是方便起 ...
- js自增图片切换
使用js自增进行图片的切换 <!DOCTYPE html> <html lang="zh"> <head> <meta charset=& ...
- UNIX环境高级编程 使用方法
1.解压文件到apue.2e目录2.修改相应平台的文件,我使用的是linux,所以修改Make.defines.linux你修改的只需要这一行WKDIR=/home/your_dir/apue2e_s ...
- Python3爬虫(2)_利用urllib.urlopen发送数据获得反馈信息
一.urlopen的url参数 Agent url不仅可以是一个字符串,例如:https://baike.baidu.com/.url也可以是一个Request对象,这就需要我们先定义一个Reques ...
- Nmap的一些常用的nse脚本
转自freebuf.com/ 点击跳转 在这篇文章中,我们将研究最著名的渗透工具之一 Nmap 一款标志性的跨平台扫描器.它的原意为Network Mapper(网络映射器),具有相当强大的扫描功能 ...
- 字符logo存档
在做项目的时候在源码开头加上一个自己的Logo就很爽,配合上标准的许可证声明之类的就可以让自己的代码看上去很专业.逼格很高-- 之前用topster.de的ASCII Generator搞过一点log ...
- 前端与算法 leetcode 350. 两个数组的交集 II
目录 # 前端与算法 leetcode 350. 两个数组的交集 II 题目描述 概要 提示 解析 解法一:哈希表 解法二:双指针 解法三:暴力法 算法 # 前端与算法 leetcode 350. 两 ...
- Pandas 时间序列
# 导入相关库 import numpy as np import pandas as pd 在做金融领域方面的分析时,经常会对时间进行一系列的处理.Pandas 内部自带了很多关于时间序列相关的工具 ...
- [考试反思]1019csp-s模拟测试80(a):天遣
A组题,所以把榜粘全了. 第6名,被卡在刚好正中间. 我最近干什么伤天害理的事了?(例如说没有在skyh去上厕所的时候捶他) 上来看T1,非常贴心出题人直接把递推式子给你了,然后就和斐波数的递推一样了 ...