`
yuanyao
  • 浏览: 147176 次
  • 性别: Icon_minigender_1
  • 来自: 就那小山沟
社区版块
存档分类
最新评论

Bash编程学习笔记(一)

阅读更多
Shell变量及相关的命令
一个变量就是内存中被命名的一块存储空间.一个Shell变量的名字可以包含数字,字母和下划线,变量名的开头只准许是字母和下划线.变量名中的字母是大小写敏感的,变量名没有限制.
Shell可以是以下两种:Shell环境变量和用户定义变量.
1.Shell环境变量
环境变量是用来定制Shell的运行环境,保证Shell命令的正常运行.所有环境变量会传递给Shell的子进程,这些变量大多数在/etc/profile文件中初始化,而/etc/profile是在用户登录的时候执行的,这个文件由系统管理员编写,用来为系统的所有用户建立一个通用的环境.可以在~/.profile文件中给部分或全部环境变量赋不同的值,它同样在登录的时候执行,或者在~/.bashrc,~/bash_login和~/.bash_profile中修改,它们在Bash启动的时候执行.

一些重要的可修改的Bash环境变量

BASH Bash的完整路径名
CDPATH 包含cd命令要逐个查找的路径,cd命令在这些路径下查找 作为参数传递给它的目录名.如果CDPATH没有设置,cd命令则查找当前目录
EDITOR 在应用程序中使用的默认的编辑器
ENV linux查找配置文件的路径
HISTFILE  存放历史记录的文件的路径名
HOME 用户的主目录名字
IFS Bash用来分割命令行中参数的分割符号
MAIL 用户的主目录的命令
MAILCHECK  Shell应该多久检查一次用户的系统邮箱,并在有新邮件的时候通知用户
PATH 包含用户检索路径的变量 --Shell依据这个变量在它指出的目录下面查找外部命令和程序
PPID 父进程的ID号
PS1 出现在命令行的主Shell提示符,通常被设置为$,但是这是可以修改的
PS2 出现在一个命令的第二行的二级Shell提示符号
PWD 很熟悉,当前工作目录的名字
TERM 用户的控制终端的类型

一些重要的只读Bash环境变量

$0 程序的名字
$1~$9 命令行参数1~9的值
$* 所有命令参数的值
$@ 所有命令行参数的值
$# 记录了命令行参数的总个数
$$ 当前进程的ID号
$? 最近一次命令的退出状态
$! 最近一次后台进程的ID号


2.用户定义的变量
用户定义的变量在Shell脚本中用来作为临时的存储空间,他们的值在程序执行的过程中是可以改变的.这些变量可以设置为只读的,而且也可以被传递给定义它们的那个Shell脚本,不同于其他的编程语言,在Bash编程编程语言中,不需要定义并初始化一个Shell变量,一个没有被初始化的Shell变量自动地被初始化为一个空串.


set命令可以打印出目前所有的Shell变量.

好了,来先写一个简单的Shell吧(为了避免自己写的脚本与系统命令重名,建议shell脚本以.sh结尾. 但自己写的脚本还是可能与系统自带的脚本重名, 建议命名前通过$ which Shellname.sh).

vi一个hello.sh放在ScriptFile文件夹下
$vi hello.sh

文件内容:{
date
who
}
$cd ScriptFile
$./hello.sh

显示如下:
yaoyuan@yaoyuan-desktop:~/ScriptFile$ ./hello.sh
yaoyuan  tty7         2008-10-11 21:09 (:0)
yaoyuan  pts/0        2008-10-11 22:47 (:0.0)


控制Shell提示符

Bash允许很方便地控制Shell提示符,可以指定一个或多个特殊字符作为提示符变量(PS1,PS2等),以此可以显示不同的Shell提示符.

一些有用的特殊字符及其描述

\H 主机域名的全称
\T 时间,格式为hh:mm:ss,12小时格式
\d 日期,格式为"weekday month date"
\h 计算机的主机名的第一部分(第一个"."前面的部分)
\s 用户shell的名字
\t 时间,格式为hh:mm:ss,23小时
\u 当前用户的用户名
\v Bash的版本号
\w 当前的工作目录

来试一下

yaoyuan-desktop$PS1='\t$'
23:29:56$PS1='\s-\v$'
bash-3.2$PS1='\v$'
3.2$PS1='\H$'
yaoyuan-desktop$PS1='\s$'
bash$PS1='\H$'
yaoyuan-desktop$



变量声明

Bash并不要求声明变量,但是可以使用declare和typeset命令来声明变量,对它们进行初始化,并设定它们的属性.一个变量的属性规定了该变量可以被赋给的值的类型和该变量的范围.一个Bash变量默认是一个字符串,但是可以把一个变量定义为一个整型值.

声明变量,初始化变量,设置它们的属性
declare[+-options][name[=value]]
typeset[+-options][name[=value]]

-a 每一个"name"是一个数组
-f 每一个"name"是一个函数
-i "name"是一个整数
-r 给每一个"name"标记上只读的属性
-x 表示每一个"name"都可以被子进程访问到

再试试看:

yaoyuan-desktop$declare -i age=42
yaoyuan-desktop$echo $age
42


yaoyuan-desktop$declare -rx OS=linux
yaoyuan-desktop$echo $OS
linux


使用name=value,改变一个变量的值
yaoyuan-desktop$echo $age
42
yaoyuan-desktop$age=100
yaoyuan-desktop$echo $age
100
分享到:
评论

相关推荐

    shell编程学习笔记

    变量: 变量的赋值和引用 在shell编程中变量没有类型,简称弱类型编程语言,不需要声明,在引用这个变量时会创建它(在变量名前加$符号引用变量的值)。在定义变量时,若String中包含空格、制表符、换行符,需用单...

    Bash_shell学习笔记

    根据给定的"Bash shell学习笔记"文件信息,我们可以从中提炼出多个重要的IT知识点,具体如下: ### 1. 引言 - **Shell的角色**:Shell作为一个命令解释器和编程语言,在用户与UNIX/Linux系统内核之间提供了一个桥梁...

    bash高级编程教程

    《高级Bash脚本编程指南》是一本深入探讨Shell脚本编程艺术的教程,由Mendel Cooper撰写,旨在帮助读者提升在Unix/Linux环境中使用Bash shell进行脚本编程的技能。这本书涵盖了一系列高级主题,从为何选择Shell编程...

    shell脚本编程学习笔记汇总

    shell脚本编程学习笔记汇总 本文档总结了 Linux shell 脚本编程的学习笔记,涵盖了 shell 脚本的定义、编写、权限、存放位置、函数、变量、IF 控制语句、命令退出状态等知识点。 一、shell脚本的定义 shell 脚本是...

    入门到熟练 高效 Bash Shell 学习笔记材料书籍 BashNotesForProfessionals

    一本特别实在的 Bash 笔记教程,学习效率很高。是一份不可多得的高效 Bash 学习材料。如果你想学习 Bash Shell、Bash 脚本编程,看它绝对没错。免费分享!不用积分,更不用付费! 或者从此处直接下载: ...

    shell script编程学习笔记

    ### Shell Script 编程学习笔记 #### 一、Shell 脚本初窥 ##### 示例: ```bash #!/bin/sh # 第1行:指定脚本解释器(声明使用的shell名称),这里是用/bin/sh做解释器的。“#!”是一个约定的标记 cd ~ # 第2行:...

    linux编程学习笔记PDF资料下载.txt

    根据提供的文件信息,我们可以推断出这是一份关于Linux编程学习笔记的PDF资料。下面将对这份资料可能涉及的关键知识点进行详细的阐述。 ### Linux编程基础知识 #### 1. Linux操作系统概述 - **定义与特点**:Linux...

    Linux零基础学习笔记 Shell编程-菜鸟入门(超详细)

    Linux是开源的操作系统,它的命令行界面,尤其是Shell编程...因此,无论你是技术小白还是希望进一步提升,这份“Linux零基础学习笔记 Shell编程-菜鸟入门”都会是你宝贵的资源。祝你在学习的道路上越走越远,不断进步!

    UNIX系统编程学习笔记

    7. **Shell编程**:Bash是最常见的UNIX shell,它允许用户编写脚本执行一系列命令。了解变量、条件语句、循环结构以及函数是必要的。 8. **库函数与系统调用**:C语言是UNIX编程的主要语言,系统调用(如上述的`...

    Linux服务器Shell编程学习笔记linux操作系统 电脑资料.docx

    在这个学习笔记中,我们将深入探讨如何编写和理解Shell脚本。 首先,Shell是Linux操作系统中的一个用户界面,它作为用户与操作系统内核交互的接口。常见的Shell类型有bash(Bourne-Again SHell)、sh(Bourne Shell...

    各种编程学习笔记:Python, HTML, CSS, Javascript, Git, Linux, PHP.zip

    这篇压缩包文件“各种编程学习笔记:Python, HTML, CSS, Javascript, Git, Linux, PHP.zip”包含了多个关键编程语言和技术的学习资料,是初学者和进阶者宝贵的资源。接下来,我们将深入探讨这些主题,以便更好地理解...

    Linux服务器Shell编程学习笔记linux操作系统 电脑资料.pdf

    Linux服务器Shell编程是系统管理员和开发者在日常工作中必备的技能之一。Shell脚本是一种通过Shell解释器执行的文本文件,可以包含一系列命令,用于自动化任务和管理系统。在Linux操作系统中,常用的Shell包括bash、...

    c++学习笔记.pdf

    标题中的"C++学习笔记.pdf"表明文档是一份关于C++语言的学习记录。C++是一种广泛使用的编程语言,由Bjarne Stroustrup在1980年代初开发,它是一种静态类型、编译式、通用编程语言。C++支持多范式编程,包括过程化、...

    BASH 学习笔记小结

    ### BASH 学习笔记小结 #### 1. Linux脚本编写基础 ##### 1.1 语法基本介绍 **1.1.1 开头** - **Shebang**: 在 Linux 脚本中,第一行通常是 `#!/bin/sh` 或 `#!/bin/bash`。这种特殊的行被称为 shebang (hash-...

    学习笔记-基础Shell编程

    ### 学习笔记-基础Shell编程 #### 一、Shell编程概述 Shell编程是指利用Shell命令语言编写脚本来实现特定功能的过程。Shell不仅是Linux操作系统下的命令行解释器,还是一种强大的脚本语言,广泛应用于自动化任务...

    Linux学习笔记——入门资料

    Linux学习笔记——入门资料 Linux,作为一款开源、免费的操作系统,因其稳定性和安全性而备受开发者和系统管理员的青睐。这份“Linux学习笔记”旨在帮助初学者快速掌握Linux的基础知识和操作技能,从而轻松入门。 ...

    最新Hadoop学习笔记

    **Hadoop学习笔记详解** Hadoop是一个开源的分布式计算框架,由Apache基金会开发,主要用于处理和存储海量数据。它的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce,两者构成了大数据处理的基础...

    「linuxshell编程学习笔记shell运算符号和运算命令」.docx

    在Linux Shell编程中,运算符号和运算命令是核心概念,用于执行数学计算和逻辑操作。以下是关于这些主题的详细说明: **一、Shell运算符号** 1. **加法 (+)**: 使用`expr`命令进行加法运算,例如 `expr 43 + 21` ...

Global site tag (gtag.js) - Google Analytics