一,变量
1.本地变量 只对当前shell有用,对子shell无效
2.环境变量 对子shell有效
定义(导入)环境变量的方式 :export abc=’ab‘
export 查看(导出)系统所有的环境变量
一些内置环境变量的含义:
DISPLAY:定义图形界面所显示到的位置
HISTSIZE:定义保存的历史记录数量
HOME:定义用户家目录
HOSTNAME:主机名
LANG:定义使用的语言
LOGNAME:登录系统的用户名
PWD :当前目录
SHELL:定义当前使用的shell
PS1:
eg:export PS1='\t\!\$'
export PS1='[\u@\u \w]\$'(恢复到初始的变量)
man bash里有关于PS1的内容。
3.特殊变量
$? 代表上一个命令执行后的退出状态
4.位置变量
位置变量指的是shell程序在运行时传入的参数。程序中可以用变量的形式
来 调用这些 参数。这些参数被存放到1~9的9个变量名中,被形象的称
为位置变量。同普通变量一样, 位置变量用$前缀加这个数字来表示。
例 如,第5个参数,表示为$5。
例如要向shell程序传 递参数“Beijing is a beautiful city”
eg1:vim test1.sh
#! /bin/bash
echo "$1"
echo "$2"
echo "$3"
echo "$4"
echo "$5"
chmod +x ./test.sh
./test1.sh beijing is a beautiful city
eg2:vim test.sh
#!/bin/bash
echo "$1"
echo "$2"
:wq
chmod +x ./test.sh
./test wangxing lizhiqiang(给shell传俩参数)
eg3:传递两个整数给脚本,让脚本分别计算并显示这两个整数的和,差,积,商
vim test.sh
#!/bin/bash
echo "first number $1" (表示输出第一个数)
echo "second number $2" (表示输出第二个数)
echo " $(($1+$2))" (输出两数之和)
echo "$[$1-$2]" (输出两数之差)
echo "$[$1*$2]" (输出两数之积) 二,配置文件类型
从作用范围划分:
1.全局
/etc/profile, /etc/profile.d/* ,/etc/bashrc
2.局部
~/.bash_profile,~/.bashrc,~/.bash_logout
shell:(1)交互式登录shell
调用的文件依次为:
/etc/profile -->/etc/profile.d/*-->~/.bash_profile
-->~/.bashrc-->/etc/bashrc
(2)非交互式登录shell(系统启动时自动执行)
调用的文件依次为:
~/.bashrc-->/etc/bashrc-->/etc/profile.d/*
从功能方面划分
1.profile类
功能:1)设置环境变量
2)运行用户登录要执行的一些命令
2.bashrc类
功能:1)设置别名
2)设置本地变量
三,输入/输出重定向
标准输入:/dev/stdin, 0 默认:从keyboard(键盘)输入
标准输出:/dev/stdout, 1 默认:从monitor(显示器)输出
错误输出:/dev/stderr, 2 默认:从monitor(显示器)输出
重定向:是指不是有系统提供的标准输入或输出端口,而进行重新的指定
输出重定向:eg:该从显示器输出,不让他从显示器输出,而把他保存到某个文件
输入重定向:eg:不从键盘输入,而进行重新指定
输入重定向 <
输出重定向 > >>(追加输出重定向)
eg: ls –l /etc >/tmp(将 ls -l列出的内容覆盖输出到/tmp而不是通过显示器显示出来)
ls –l /etc >>/tmp (追加输出到/tmp)
ls /tec >/tmp/etc.out 2>/tmp/etc.err
(如果正确则输出到/tmp/etc.out,如果错误则输出到/tmp/etc.err)
错误输出重定向 2> 2>>(追加错误输出重定向)
&> 将正确的和错误的输出重定向到一个文件里
2>& 将标准错误重定向到标准输出
set -C 避免使用覆盖重定向(拒绝覆盖重定向)
set +C 关闭上面的功能
自定义输出重定向:
不使用0,1,2
exec 3> /tmp/myout.out
(定义3这个描述符,适用于想多次向某个文件中重定向,避免多次打开关 闭/tmp/myout.out文件 )
ls –l /etc >&3
exec 3>&- (撤销3这个描述符)
阅读(3205) | 评论(0) | 转发(0) |