博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bash命令执行
阅读量:2242 次
发布时间:2019-05-09

本文共 749 字,大约阅读时间需要 2 分钟。

命令被拆分为词之后,如果结果是一个简单的命令和可选的参数列表中,采取如下措施。

如果命令名中没有斜杠,shell试图找到它。如果存在该名称的shell函数,如函数上述的函数被调用。如果名称不匹配功能,在shell内建命令的列表,它外壳搜索。如果发现匹配,即内建被调用。
如果名称既不是shell函数也不是一个内建命令,并且没有包含斜杠,bash的搜索路径中的每个元素包含该名称的可执行文件的目录。 Bash使用一个哈希表来记忆可执行文件的完整路径(见散在shell内建下面命令)。如果哈希表中没有找到的命令路径的完整的搜索目录的,才执行。如果搜索不成功,在定义的shell函数shell搜索名为command_not_found_handle。如果该功能存在,它被调用与原来的命令和原始命令的参数作为它的参数,函数的退出状态成为shell的退出状态。如果没有定义功能,外壳输出错误消息并返回退出状态127。

如果搜索是成功的,或如果该命令名包含一个或多个斜线,外壳执行在一个单独的执行环境中的命名方案。

参数0被设置为给定的名称,如果任何其余参数与命令被设置为给定的参数。
如果因为该文件不是可执行格式,并且该文件不是目录此执行失败,就被认为是一个shell脚本,包含shell命令的文件。子shell被产生执行它。此子shell重新初始化自身,使得效果就好像新的外壳已被调用来处理脚本,不同之处在于由父想起命令的位置(见下文SHELL内置命令散列)由子被保留。
如果程序以#开头的文件!在第一行的其余部分用于指定程序的解释器。shell执行的操作系统不处理这种可执行格式自己指定的解释。要解释的参数包括以下的程序的第一行解释器的名字一个可选参数,其次是程序的名称,然后是命令行参数的,如果有的话。

转载地址:http://fnwdb.baihongyu.com/

你可能感兴趣的文章
HTTP高并发测试
查看>>
数据重生:让神经机器翻译中的不活跃样本“复活”
查看>>
【Java】【28】提高List的removeAll方法的效率
查看>>
【JS】【31】读取json文件
查看>>
OpenSSL源代码学习[转]
查看>>
google app api相关(商用)
查看>>
linux放音乐cd
查看>>
GridView+存储过程实现'真分页'
查看>>
flask_migrate
查看>>
解决activemq多消费者并发处理
查看>>
UDP连接和TCP连接的异同
查看>>
hibernate 时间段查询
查看>>
java操作cookie 实现两周内自动登录
查看>>
Tomcat 7优化前及优化后的性能对比
查看>>
Java Guava中的函数式编程讲解
查看>>
Eclipse Memory Analyzer 使用技巧
查看>>
tomcat连接超时
查看>>
谈谈编程思想
查看>>
iOS MapKit导航及地理转码辅助类
查看>>
检测iOS的网络可用性并打开网络设置
查看>>