linux脚本ls输出到变量中,shell中变量的种类,输入输出重定向示例(5.3)

一,变量

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程序传  递参数“Beijingis 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这个描述符)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值