SHELL编程基础(二)

  

SHELL编程基础(二)

编写一个简单的程序

#this is sample //注释

echo "hello,welcome to Fedora 6"  

echo "Logged in $USER."  

env|grep PATH

echo $PATH

1、变量

1)用户变量

VAL=val

St?nt=tom

echo St?nt

echo $St?nt

变量引用符“$”

注意:单引号和反斜杆都可以阻止使用变量的值。双引号不会阻止变量替换,但是可以关闭大多数其他字符的特殊意义。

当使用变量作为一个参数执行一个命令时,shell将用该变量的值来代替变量名,如果变量的值包含特殊字符,如*,?,等,还会进行变量扩展。如果用””引号括起来,可以阻止bash对展开的变量进行路径名扩展。

删除变量用unset $St?nt.

2)变量属性

a、只读,readonly

bdeclare,typest

-a 数组变量

-f 函数名变量

-i 整形变量

-r 只读

-x 输出变量

默认情况下,变量的值作为字符串存放。

3)全局(环境)变量

全局变量全部用大写字母。

系统变量可以通过继承声明并初始化,也可以在shell启动时声明并初始化。可以通过命令行方式或者在初始化文件中为这些变量指定值。对于那些不由shell自动输出的变量,用户必须使用export,setenv使这些变量也可以被子shell访问。

HOME/~ 用户主目录

PATH shell搜索命令的目录

关于如何设置PATH,可以参见:

Fedora中的环境变量设置

http://blog.163.com/zhoumhan_0351/blog/static/399542272010521114234850/

MAIL 用户邮件

PS1 第一个提示符,可以使用的符号如下:

\:如果一行命令没有打完可以输入\来继续输入没有打完的命令称之为续行 
\!:显示改命令的历史编号 
\#:显示SHELL激活后当前命令的历史编号 
\$:显示当前用户变量值,如果当前用户是root就显示#是其他用户就显示$ 
\\:显示一个反斜杠 
\d:显示一个当前日期 
\h:显示运行该SHELL的计算机主机名 
\n:打印一个换行符导致提示符换行跟C语言语法类似 
\s:显示当前SHELL的名称 
\t:显示当前时间 
\u:显示当前用户的用户名 
\W:显示当前工作目录基准名 
\w:显示当前工作目录 

\@ 按照12小时制,AM/PM格式显示的当前时间

\! 当前事件编号

常用的系统变量:

BASH_ENV

CDPATH

COLUMNS

FCEDIT

HOME

IFS

PS1

PS2

PWD

UID

4)位置变量和特殊变量

set来进行设置

#this is sample  

if [$# -eq 0 ]  

then  

echo "not provide name"  

else  

echo "your name is "$1  

fi  

5)数组变量

定义:

name=(ele1 ele2 ele3 ...)

$aYear=(Spring Summer Autumn Winter)

declare -a aYear='([0]="Spring" [1]="summer")'  

引用数组中的第三个元素的值:

echo $(aYear[2])

使用下标[*],[@]都可以提取整个数组元素,但是加上比引号时意义不同,@把原数组的内容复制到一个新数组中,生成的数组和原来的一样,而*符号是把原数组中所有元素当成一个元素复制到新数组中,生成的数组只有一个元素。

参考

[1] PS1设置相关http://dong926.blog.51cto.com/386907/179816/

[2]LINUX一些常用命令以及BASH基本变量

发布了81 篇原创文章 · 获赞 17 · 访问量 6038

猜你喜欢

转载自blog.csdn.net/hopegrace/article/details/103758108