bash 调用
来源:互联网 发布:螺纹梳刀编程 编辑:程序博客网 时间:2024/06/06 07:15
一个交互的shell,是一个启动时没有指定非选项参数,并且没有-c选项,其标准输入和错误都连接到了终端(在isatty(3)确定),或者启动时使用-i选项。PS1设置和$ - 包括我如果bash是交互的,允许一个shell脚本或者一个启动文件来测试这种状态。
下面的段落描述的bash如何执行它的启动文件。如果任何文件的存在,但不能被读取,bash报错。作为下在扩展部分波浪线扩展如下所述波浪线在文件名扩展。
当bash是作为交互的登录shell,或者作为非交互的shell与–login选项,它首先读取和从文件中执行命令/ etc / profile文件,该文件是否存在。读取该文件后,它会寻找在〜/ .bash_profile,〜/.bash_login文件,和〜/.profile文件,按照这个顺序,读取并执行从存在并且可读的第一个命令。当外壳被启动,以抑制这种行为可以使用–noprofile选项。
当一个登录shell退出时,bash读取并从文件〜/.bash_logout中执行命令,如果它存在。
当一个交互的shell这不是一个登录shell启动时,bash读取并/etc/bash.bashrc和〜/ .bashrc中执行命令,如果这些文件存在。这可以通过使用–norc选项被抑制。该文件–rcfile选项将强制bash读取和文件,而不是/etc/bash.bashrc和〜/ .bashrc中执行命令.
当bash启动非交互,运行shell脚本,例如,它会在环境变量BASH_ENV,如果它出现在那里,并使用扩展的值作为一个文件的名称,读取并执行扩展其价值。
bash的行为就好像是执行以下命令:
if [ -n “$BASH_ENV” ]; then. “$BASH_ENV”; fi
但PATH变量的值不用于搜索的文件名.
如果bash以名称sh启动,它试图模仿sh历史尽可能接近的启动行为,同时也遵循POSIX标准。
当作为交互式登录shell,或者使用–login选项非交互的shell启动,它首先尝试读取并执行从/ etc/ profile文件命令和〜/.profile文件,按照这个顺序。所述–noprofile选项可以被用于抑制这种行为。当使用名称sh的交互式的shell的时候,bash寻找变量ENV,扩展,如果它被定义它的值,并使用扩展后的值作为一个文件的名称,读取并执行。
名为sh启动的非交互的shell不会尝试读取任何其他启动文件。 当运行sh的时候,启动文件被读取后庆典进入POSIX模式。
bash 试图确定什么时候它正在与它连接到一个网络连接,当由远程shell守护程序执行作为标准输入运行,通常是sshd的,或安全shell守护进程sshd的。
如果bash的决定了它以这种方式被运行时,它读取和删除〜/ .bashrc和〜/ .bashrc中执行命令,如果这些文件存在并且是可读的。
如果shell启动的有效用户(组)ID不等于真正的用户(组)ID和-p选项没有提供,没有启动文件的读取,shell函数不会从环境中继承SHELLOPTS,BASHOPTS,CDPATH和GLOBIGNORE变量,如果它们出现在环境中,被忽略,有效用户ID设置为实际用户ID。如果-p选项在调用提供时,启动行为是相同的,但有效用户ID不会被重置。
- bash 调用
- bash 调用历史命令
- bash调用过程
- 调用bash执行可执行文件
- C语言调用Bash脚本
- Mac bash 调用系统对话框
- 调用bash shell脚本的方式
- bash与python的管道调用方法
- bash
- .bash
- bash
- bash
- bash
- bash
- bash
- Bash
- Bash
- bash
- C++调试
- hdu2602 Bone Collector(01背包问题)
- Box2d源码学习<五>b2Timer、b2Draw和b2Settings的实现
- 集合三_Set_HashSet和TreeSet
- Why Tomcat7 is replicating all my logs in /var/log/messages
- bash 调用
- 1000以内的回文素数
- 数据结构实验之链表五:单链表的拆分
- 利用织梦高级搜索功能 , 来定制身份证驾驶证信息查询系统
- ACM--模拟--nyoj 559--报数游戏--湖南第七届省赛
- 斐波那契数列的第 n 项 mod 1000000007(矩阵乘法)
- 浅析栈区和堆区内存分配的区别
- 你好哇,程序员 - me 跳槽经验说
- Box2d源码学习<六>动态树的实现