linux-bash变量,bash脚本

bash变量类型:
 环境变量
 本地变量(局部变量)
 位置变量
 特殊变量
 
本地变量:
set VARNAME=VALUE: 作用域为整个bash进程;

局部变量:
local VARNAME=VALUE:作用域为当前代码段;

环境变量:作用域为当前shell进程及其子进程;(操作变量本身使用VARNAME,操作变量的值则只用$VARNAME)
export VARNAME=VALUE
VARNAME=VALUE
export VARNAME
 “导出”

[[email protected] ~]# export name
[[email protected] ~]# bash
[[email protected] ~]# echo $name
cxiong
[[email protected] ~]# bash
[[email protected] ~]# echo $name
cxiong

引用变量:${VARNAME},括号有时可以省略

[[email protected] ~]# name=cxiong
[[email protected] ~]# echo $name
cxiong
[[email protected] ~]#

[[email protected] ~]# echo "my name is $name"
my name is cxiong
[[email protected] ~]#

位置变量:
$1, $2, ...

特殊变量:
$?: 上一个命令的执行状态返回值;

[[email protected] ~]# echo $?
0
[[email protected] ~]# ll /varr
ls: cannot access /varr: No such file or directory
[[email protected] ~]# echo $?
2
[[email protected] ~]#

程序执行,可能有两类返回值:
 程序执行结果
 程序状态返回代码(0-255)
  0: 正确执行
  1-255:错误执行,1,2,127系统预留;
  
输出重定向:
>
>>
2>
2>>
&>

撤消变量:
unset VARNAME

[[email protected] ~]# unset name
[[email protected] ~]# echo $name

[[email protected] ~]#

查看当shell中变量:
set

[[email protected] ~]# set
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:login_shell:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()

查看当前shell中的环境变量:
printenv
env
export

脚本:命令的堆砌,按实际需要,结合命令流程控制机制实现的源程序

shebang: 魔数
#!/bin/bash
# 注释行,不执行

内核只能执行ELF类型

[[email protected] ~]# nano first.sh
[[email protected] ~]# ll first.sh

[[email protected] ~]# chmod +x first.sh
[[email protected] ~]# pwd

[[email protected] ~]# first.sh

#
# /etc/fstab
# Created by anaconda on Sun Jun 21 02:15:00 2015
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#

/dev/null: 软件设备, bit bucket,数据黑洞

$?

[[email protected] ~]# id student &> /dev/null
[[email protected] ~]# echo $?
1
[[email protected] ~]# id rhel &> /dev/null
[[email protected] ~]# echo $?
0
[[email protected] ~]#

脚本在执行时会启动一个子shell进程;
 命令行中启动的脚本会继承当前shell环境变量;
 系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量;

时间: 2024-12-17 03:49:50

linux-bash变量,bash脚本的相关文章

Linux定义变量的脚本

现有两段基本一样的代码,只是变量进行改变,其他都没有变化,但是执行过程中出现了不一样的结果 代码一: vi back.sh #backup import file,such as /etc/rc.local /var/spool/cron/root IP=$(ifconfig eth1|sed -nr '2s#.*addr:(.*) B.*#\1#gp') Path=/backup if [ $(date +%w) -eq 0 ] then Time=$(date +%F-%w -d "-1 d

Shell学习之Bash变量详解(二)

Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这种变量中主要保存和系统操作环境相关的数据. 位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的. 预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的. Bash变量注意点 1.变量名称可以由字母.数字和下划线组成,但是不能以数字

Linux基础之bash脚本编程初级-变量

什么是变量? 变量最初来源于数学,指的是非固定的值可变化的数通常用拉丁字母表示.在计算机中变量它依旧指的是可变化的数,只不过表现形式有些变化.它指的是变量名+所指向的内存空间. 以下实验环境均在CentOS7.2进行 变量的特点 变量分强类型变量,与弱类型变量 强类型变量:变量需事先声明且需提前定义其变量存储格式 弱类型变量:不需事先声明,不需定义变量存储格式. bash把所有变量统统视作字符型:bash中的变量无需事先声明,相当于,把声明和赋值过程同时实现. 变量名的命名规范: 变量名只能包含

Linux学习笔记--bash脚本编程之一变量、变量类型

bash脚本编程之一变量.变量类型 shell编程: 编译器,解释器 编程语言:机器语言.汇编语言.高级语言 静态语言:编译型语言 强类型(变量)语言 事先转换成可执行格式 C.C++.JAVA.C# 动态语言:解释型语言       on the fiy                                   弱类型 边解释边执行 ASP.ASP.net.PHP.shell.Python.perl 面向过程:shell.C   面向对象:JAVA.Python .Perl.C++

Linux基础之bash脚本编程初级-逻辑运算与测试

引言 前面介绍了bash编程的基础变量与算术表达式,本文介绍在脚本中的进阶知识:测试 在bash中测试大体分两部分:条件测试.组合测试. 而条件测试有分:数值测试.字符串测试.文件测试. 组合测试则有两种表达方式.具体是什么表达方式在文章中会有具体展示. 本文实验环境为CentOS7.2 Linux中为什么要学习测试(判断)? 当我第一次学习这部分内容时,觉得好难,好不爽.可是这又是想要继续学习Linux必须要掌握的知识点.为什么?我们在生活中面对各种选择时总要问问自己,我是否应该怎样,不这样会

Linux基础之bash脚本编程进阶篇-选择执行语句(if,case)

bash脚本的书写规范简介 看本文需要了解的脚本撰写习惯:bash 开头顶格写#!紧接着写解释器路径/bin/bash 由于bash属于脚本语言,脚本语言的运行方式 解释运行:源代码 --> 运行时启动解释器,由解释器边解释边运行 Linux中的脚本解释器有:zsh,csh,bash,tsh众多shell,不过bash最常用. 第一行写完之后,就可以直接写代码.不过为了便于他人阅读通常会增加如下行: 第二行:#版本信息 第三行:#作者与联系方式 第四行:#版权宣告方式 第五行:#History

Linux中编写Bash脚本的10个技巧

Shell 脚本编程 是你在 Linux 下学习或练习编程的最简单的方式.尤其对 系统管理员要处理着自动化任务,且要开发新的简单的实用程序或工具等(这里只是仅举几例)更是必备技能. 本文中,我们将分享 10 个写出高效可靠的 bash 脚本的实用技巧,它们包括: 1. 脚本中多写注释 这是不仅可应用于 shell 脚本程序中,也可用在其他所有类型的编程中的一种推荐做法.在脚本中作注释能帮你或别人翻阅你的脚本时了解脚本的不同部分所做的工作. 对于刚入门的人来说,注释用 # 号来定义. # TecM

linux之bash变量

bash变量之高级部分 1.变量扩展 ${变量名称}                     变量扩展                          例如:${filename} $(命令)                            命令替换                          例如:$(ls /) $((算术式))                       算式扩展                          例如:$((9+9)) 变量扩展:一种简易的条

linux终端 及 tty who echo 命令用法 和 shell bash 变量

linux终端分为物理终端,伪终端,串行终端,虚拟终端 物理终端:/dev/console 伪终端(远程终端   图形下的终端):/dev/pts/#(数字) 虚拟终端:/dev/tty# 串行终端:/dev/ttys# startx 启动图形界面 ctrl+c 取消正在执行的命令 shift+pageup/pagedown   在命令界面翻屏 tty 命令   显示当前终端对应终端设备文件 who命令   查看当前系统上登录的所有账号 who  am  i     显示当前终端登录呃账号 sh