多个参数如何使用linux管道,Linux中的变量及IO管道使用

bash shell系统中的变量无需声明可以直接调用

变量引用:$var_name /${var_name}

变量类型:

本地变量:作用域仅为当前shell进程;

环境变量:作用域为当前shell进程及其子进程;

局部变量:作用域仅为某代码片断(函数上下文);

位置参数变量:当执行脚本的shell进程传递的参数;

特殊变量:shell内置的有特殊功用的变量;

$?:判断上一条命令的执行结果

0:表示成功,1~255:表示失败

引号的特殊含义:

单引号'':强引用,所有字符原样输出,不转义

双引号"":弱引用;输出引号内所有内容;若内容中有变量、特殊字符转义等会解析结果,然后在输出

反引号``:用于引用命令结果如同$(..)

21401139304bda75ddfe495737a07056.png

本地变量:仅在一个shell中有效,子进程不生效

用法:var_name=value

查看变量:set | grep var_name

撤销变量:unset var_name

环境变量:在当前shell的所有子shell中生效

用法:

export name=value

name=value

export name

declare -x name=value

name=value

declare -x name

9228bd295ba24d084f03b2364a73615d.png

只读变量:只读变量无法重新赋值,并且不支持撤销;存活时间为当前shell进程的生命周期,随shell进程终止而终止;

用法:

declare -r var_name=value

readonly var_name=value

cf954a0ff4c41607a3cebf968202ed50.png

查看环境变量命令:export, declare -x, printenv, env,set

但当再重新打开一个终端是,环境变量无效只在当前shell生效,需要定义在全局环境变量配置文件中才会生效。在登录系统时并启动一个shell,一般会加载配置文件中的环境变量。加载的文件跟登录的方式相关。

bash配置文件分为两类:

-profile:为交互式登录shell进程提供配置

全局:对所有用户都生效;

/etc/profile

/etc/profile.d/*.sh

用户个人:仅对当前用户有效;

~/.bash_profile

用途:

1、用于定义环境变量;

2、运行命令或脚本;

-bashrc:为非交互式登录shell进程提供配置

全局:

/etc/bashrc

用户个人:

~/.bashrc

用途:

1、定义本地变量;

2、定义命令别名;

登录与非登录shells:

登录shells:

1.任何通过用户登录的shell包括图形界面登录

2.su -

非登录shells:

1.su

2.图形界面下的终端

3.脚本

4.其他bash实例

下面通过在xuetong用户中的四个配置文件中添加echo "/path-dir"来验证加载的文件:/etc/profile,/etc/bashrc,~/.bahs_profile,~/.bashrc;

86ba86016c94de4e003214a92824c4d6.png

配置文件的读取顺序:

e7a51adaffa2d77434b3445ce3dee44f.png

所以如果希望在登录shell和非登录shell都能读到的文件应将变量设置在:~/.bashrc,/etc/bashrc

如何让配置文件中变量生效

通过命令行重复定义一次;

让shell进程重读配置文件;

source /path/conf_file

. /path/conf_file

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值