概述
习惯上我们以.sh作为脚本的文件后缀,
脚本的第一句格式#!/bin/bash
脚本的执行:
bash 脚本路径 :执行该脚本
-n :检查语法错误
-x:显示执行的命令,相当于”echo on“
直接输入脚本的路径:该方式也可以直接执行脚本
变量的定义:
变量名=变量值
$变量:引用变量值,在变量的前面使用美元符号
双引号:双引号的内部可以进行变量的引用
单引号:单引号的内部的字符串仅仅代表字符串
单撇号:tab键上面的符号,其内部一般包括的是命令,主要是在有些情况使用引用命令的执行结果,于是使用单撇号将其与其他字符串分开,使其结果与之组合。
$(command):这种形式与单撇号的功能相同,在括号中写入命令语句,将命令与字符串分离,将 结果与字符串结合。
位置变量
比如在脚本中写入$1,在脚本的尾部加上参数,就可以在脚本的执行过程中使用这些参数,这就有点像批处理中的%1,其实都是差不多的。
预定义变量
变量?:如果上一条命令执行成功,则“?”这个变量的值就为0 ,否则为1--255之间的值。类似批处理中的errorlevel
变量#:传递的位置变量的个数,我们可以判断该脚本传递的参数是否是指定的个数,若不为指定参数就停止脚本。
变量0:该变量代表脚本的名称
read命令
read -p:该命令就有点像set /p="xxxxxx",该命令就是在屏幕上交互让用户去输入数值
变量的算术运算
默认情况下,linux所有的变量都视为字符串
let 变量名=变量1+变量2:let命令创建一个变量使其可以接收两个变量的计算和
$[$a+$b]:使用方括号将两个变量的运算包括,同样起到算术运算的效果
常见的环境变量
USER:当前工作的用户名
UID:当前工作的用户ID
SHELL:当前使用shell
HOME:当前用户的家目录
HISTSIZE:最大的历史记录数目
PWD:当前的工作路径
PATH:默认执行路径
LANG:默认语言
!!!注意用户定义的变量的作用范围有限,仅仅在当前用户使用的终端
export 变量名=“xxxx”:定义环境变量,其作用范围仅仅在当前shell及其子shell,其他用户依然不能使用该命令定义的环境变量
bash配置文件
bash配置文件分为两类:
第一类是profie文件
profile类文件:该类文件只有在用户登录时才会执行。
profile全局配置相关:/etc.profile文件 和/etc/profile.d目录。etc下的profile文件主要是一些登录时候的配置,每个用户在登录时都会执行该文件,profile.d目录主要是存放一些登录脚本,可以在该目录中存放用户的登录脚本,其作用范围依然是全部用户
profile局部配置相关:在每个用户的家目录中,有一个名为 .bash_profile的文件,每个用户登录的时候,都会去执行对应家目录中的.bash_profile文件
第二类是bashrc文件
bashrc类文件:该类在登录和打开新的shell的时候会开始执行。
bashrc全局配置相关:/etc/bashrc文件,该文件对所有用户有效
bashrc局部配置相关:用户家目录的.bashrc文件仅仅对当前用户有效
source 配置文件:当我们设置好了BASH文件的时候不会立即的生效,要么我们需要进行重启,要么我们就可以使用source命令,后面加上我们对应的BASH配置文件的路径,于是该文件就会重新的加载一遍,最后就可以执行了。
总结:
/etc/profile 每个用户登录时,都会执行的文件。(全部)
/etc/profile.d 每个用户登录时,都会执行该目录中的脚本文件 (全部)
家目录中的bash_profile:该文件是家目录的主人在登录的时候,就会执行的文件 (局部)
/etc/bashrc:每个用户登录或是开启新的shell的时候,就会执行(全部)
家目录中的.bashrc:是家目录的主人在登录或者开启新的shell的时候就会执行的文件(局部)
这两类文件总归到底可以将它们视为一种登录脚本设置的地方。我们如果想要配置影响全部用户的脚本,那么我们就可以将这个脚本设置在/etc/profie文件,/etc/profile.d目录以及/etc/bashrc文件上,如果仅仅只想影响某个用户,那么我们就仅需要将对应的脚本内容设置在用户家目录上的bash_profile文件或者.bashrc文件上。
最后
以上就是眼睛大航空为你收集整理的Shell变量 与 bash配置文件的全部内容,希望文章能够帮你解决Shell变量 与 bash配置文件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复