环境变量、全局变量、位置变量、重定向

设置变量的作用范围

           格式1export   变量名 ...

           格式2export  变量名=变量值  ... —— 两种格式可以混合使用

    export 查看全局变量

更改环境变量 PATH

[root@centos6-y ~]# echo $PATH

/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

/etc/procfile 中添加需要更改添加的PATH

 Export  PATH=/root/yj:$PATH

重启电脑  shutdown  -r   now

检查PATH状态是否添加成功

echo  $PATH

若添加成功,你的shell就可以直接拿指令,当命令来使!

修改登录后名称:liu

需要修改 修改/etc/sysconfig/network    重新启动网卡

 

查看全局变量

set命令可以查看所有的Shell变量,其中包括全局变量(是由父进程继承给子进程)

env命令只查看全局变量

环境变量:

由系统提前创建,用来设置用户的工作环境

        配置文件: /etc/profile~/.bash_profile

常见的环境变量:

PWDPATH

USER(用户名) 、

LOGNAME(用户名)、

UID(用户的ID)、

PPID(父进程ID)、

SHELL(当前默认使用的shell)、

HOME(用户家目录)

PS1(指定[root@centos6-y ~]#)、$PS2(命令行的续行符号)

 

 

位置变量

表示为 $nn1~9之间的数字

大于9的位置参数要用{},例如${10}

 

 

预定义变量

$#命令行中位置变量的个数;

$*所有位置变量的内容(较少使用);

$@所有位置变量的内容;

$0当前执行的进程/程序名;

$$ 当前shellPID, echo $$ps $$, 常用作临时变量的后缀;

$?上一条命令执行后返回的状态;

//命令状态返回值,不是标准输出的,是用来判断命令是否执行成功的。。

//如果命令状态返回值是0,说明命令执行成功;如果非0,说明执行出错或异常。

//通过$?可以获取状态值(获取得是上一条命令的状态值)。

参数处理

说明

$#

传递到脚本的参数个数

$*

以一个单字符串显示所有向脚本传递的参数。

"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。

$$

脚本运行的当前进程ID

$!

后台运行的最后一个进程的ID

$@

$*相同,但是使用时加引号,并在引号中返回每个参数。

"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。

$-

显示Shell使用的当前选项,与set命令功能相同。

$?

显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

$RANDOM

随机数,可以作为临时文件名;       随机数范围 0-32767

 

 

 

 

返回值判断

有条件运行多个命令

cmd1 && cmd2    //cmd1成功了(返回值为0)才会运行cmd2

          cmd1 || cmd2    //cmd1失败了(返回值为非0)才会运行cmd2

 

 

 

UNIX时间戳:

UNIX时间戳从1970-1-1 0:0:0 到某个时间点的秒数

[root@centos6-y ~]# date +%s

1547214687           

 

Bash的重定向操作

改变标准输入、标准输出、标准错误的方向

类型

操作符

用途

重定向标准输入

<

将命令中接收输入的途径由默认的键盘更改为指定的文件

重定向标准输出

>

将命令的执行结果输出到指定的文件中,而不是直接显示在屏幕上

>>

将命令执行的结果追加输出到指定文件

重定向标准错误

2>

清空指定文件的内容,并将标准错误信息保存到该文件中

2>>

将标准错误信息追加输出到指定的文件中

重定向标准输出和

标准错误

&>

将标准输出、标准错误的内容全部保存到指定的文件中,而不是直接显示在屏幕上

&>>

Bash4.0以上才支持,rhel5不支持

Here Document

<<

命令序列传递到一个交互程序或者命令中

 

命令

说明

command > file

将输出重定向到 file

command < file

将输入重定向到 file

command >> file

将输出以追加的方式重定向到 file

n > file

将文件描述符为 n 的文件重定向到 file

n >> file

将文件描述符为 n 的文件以追加的方式重定向到 file

n >& m

将输出文件 m n 合并。

n <& m

将输入文件 m n 合并。

<< tag

将开始标记 tag 和结束标记 tag 之间的内容作为输入。

 

Here Documet用法: 传递命令序列到程序

转载于:https://www.cnblogs.com/5945yang/p/10837970.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Python 中,你可以通过设置全局变量来影响模式参数。例如,你可以通过设置 `sys.flags` 来控制 Python 的全局行为。 例如: ``` import sys sys.flags.optimize = 2 ``` 这里我们将 optimize 设置为 2 ,这样会开启优化编译。 另外,在 Python 中也有很多第三方库可以用来设置模式参数,例如:`warnings` 和 `logging` 。 ``` import warnings warnings.filterwarnings("error") ``` 这里我们将 warnings 设置为 error ,这样在程序中遇到 warning 时会抛出错误。 ### 回答2: 在Python中,可以通过设置模式参数来影响全局。 要设置模式参数,可以使用内置的`globals()`函数来访问全局变量,并对其进行修改。具体步骤如下: 1. 首先,确定要修改的全局变量的名称,即需要设置模式参数的变量名。 2. 使用`globals()`函数获取当前的全局变量字典(键值对形式)。 3. 根据需要修改的全局变量名称,在全局变量字典中找到对应的键,并将其值修改为期望的模式参数。 4. 修改完成后,全局变量的模式参数就会被设置为新的值。 举个例子,假设需要设置全局变量`mode`的模式参数为`'debug'`: ``` # 获取全局变量字典 global_vars = globals() # 设置全局变量mode的模式参数为'debug' global_vars['mode'] = 'debug' ``` 通过以上步骤,`mode`变量的模式参数就会被设置为`'debug'`,从而影响全局。 需要注意的是,修改全局变量应该慎,因为可能会造成意外的副作用。另外,在多线程或多进程环境下,修改全局变量也可能引发竞争条件或同步问题,所以在并发环境下,应该谨慎使用全局变量和修改操作。 ### 回答3: 在Python中,可以通过设置`sys`模块中的`stdin`, `stdout`和`stderr`的`fileno`属性,以及`sys.stderr`的`write`方法的模式参数,来影响全局的输出模式。 `sys`模块是Python的系统相关参数和函数的集合,用于在运行时访问或操作与Python解释器直接交互的变量和函数。 下面是一个具体的示例代码,展示如何设置输出模式参数来影响全局: ```python import sys # 保存原始的输出模式参数 orig_stdin_mode = sys.stdin.fileno() orig_stdout_mode = sys.stdout.fileno() orig_stderr_mode = sys.stderr.fileno() # 设置全局的输入模式参数 new_stdin_mode = 0o666 # 新的stdin的模式参数,该例中设置为可读可写(八进制表示) sys.stdin.fileno = lambda: new_stdin_mode # 设置全局的输出模式参数 new_stdout_mode = 0o777 # 新的stdout的模式参数,该例中设置为可读可写可执行(八进制表示) sys.stdout.fileno = lambda: new_stdout_mode sys.stderr.write = lambda x, mode=new_stdout_mode: sys.__stderr__.write(x) if (mode & 0o200) else None # 测试输出 print("Hello, World!") # Hello, World!会被打印出来,因为设置了可执行的stdout模式 # 恢复原始的输出模式参数 sys.stdin.fileno = lambda: orig_stdin_mode sys.stdout.fileno = lambda: orig_stdout_mode sys.stderr.write = lambda x, mode=orig_stdout_mode: sys.__stderr__.write(x) if (mode & 0o200) else None ``` 在上述代码中,我们首先保存了原始的输入/输出模式参数(分别是`sys.stdin.fileno()`, `sys.stdout.fileno()`和`sys.stderr.fileno()`)。然后通过新定义`sys.stdin.fileno()`, `sys.stdout.fileno()`和`sys.stderr.write()`的方式来设置新的模式参数。 需要注意的是,以上示例中只设置了stdout的模式参数,并且通过设置`sys.stderr.write()`的方式来影响stderr的模式参数。这是因为在一般情况下,无法直接修改stderr的模式参数。所以我们通过定向`sys.stderr.write()`方法的方式来间接影响stderr的输出行为。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值