注册
登录
电子工程世界-论坛
返回首页
EEWORLD首页
频道
EE大学堂
下载中心
Datasheet
专题
单片机
物联网
汽车电子
嵌入式
手机/便携
模拟电子
家用电子
网络通信
电源管理
工业控制
测试测量
半导体设计/制造
安防电子
传感器
医疗电子
caizhiwei的个人空间
https://home.eeworld.com.cn/space-uid-403336.html
[收藏]
[复制]
[分享]
[RSS]
空间首页
动态
记录
日志
相册
主题
分享
留言板
个人资料
借用开发板
论坛
淘帖
Collection
查看新帖
最新回复
社区活动
联系管理员
我的空间
帖子
日志
收藏
好友
勋章
积分
安全验证
请完成以下验证码
日志
Linux系统脚本的三种执行方式
已有 965 次阅读
2014-7-14 08:31
1、source命令用法: source FileName
作用:在当前bash环境下读取并执行FileName中的命令。该filename文件可以无"执行权限"
注:该命令通常用命令“.”来替代。
如:source bash_profile . bash_profile两者等效。
source(或点)命令通常用于重新执行刚修改的初始化文档。
source命令(从 C Shell 而来)是bash shell的内置命令。
点命令,就是个点符号,(从Bourne Shell而来)。就是顺序的执行文件里的命令而已。
2、sh和bash命令用法: sh FileName bash FileName
作用:在当前相应的bash环境下新建一个子shell读取并执行FileName中的命令。该filename文件可以无"执行权限"
注: sh使用“-n”选项进行shell脚本的语法检查,使用“-x”选项实现shell脚本逐条语句的跟踪,可以巧妙地利用shell的内置变量增强“-x”选项的输出信息等。
3、./的命令用法: ./FileName
作用:打开一个子shell来读取并执行FileName中命令。
该文件必须有可执行的权限。
注:运行一个shell脚本时会启动另一个命令解释器.
每个shell脚本有效地运行在父shell(parent shell)的一个子进程里. 这个父shell是指在一个控制终端或在一个xterm窗口中给你命令指示符的进程.shell脚本也可以启动他自已的子进程.这些子shell(即子进程)使脚本并行地,有效率地地同时运行脚本内的多个子任务.脚本里的变量设置在父进程中无效。脚本中的export仅仅作用于该脚本及其子脚本位置变量参数在向脚本传递参数时,可以使用此位置变量来获取参数。他们分别是:
$0:脚本名字。此变量包含地址,可以使用basename
$0获得脚本名称。
$1:第一个参数
$2,$3,$4,$5,...一次类推。
特定变量参数
一些脚本运行的相关控制信息
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数
$$ 脚本运行的ID号
$! 后台运行的最后一个进程的ID号
$@ 与$#相同,但是使用时加引号,并在引号中返回每个参数。
$- 显示shell使用的当前选项。
$? 显示最后命令的推出状况。0表示没有错误。
source filename 与 sh filename 及./filename执行脚本的区别在那里呢?
1.当shell脚本具有可执行权限时,用sh filename与./filename执行脚本是没有区别得,都是创建子进程去执行。./filename是因为当前目录没有在PATH中,所有"."是用来表示当前目录的。
2.sh filename 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export。
3.source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。
举例说明:
1.新建一个test.sh脚本,内容为:A=1
2.然后使其可执行chmod +x test.sh
3.运行sh test.sh后,echo $A,显示为空,因为A=1并未传回给当前shell。
4.运行./test.sh后,也是一样的效果。
5.运行source test.sh 或者 . test.sh,然后echo $A,则会显示1,说明A=1的变量在当前shell中。
本文来自论坛,点击查看完整帖子内容。
收藏
邀请
举报
全部
作者的其他最新日志
•
arm+linux学习资料+视频较长汇总!
•
【原创】Win7如何远程桌面到Ubuntu
评论 (
0
个评论)
涂鸦板
您需要登录后才可以评论
登录
|
注册
评论
caizhiwei
加为好友
给我留言
打个招呼
发送消息
热门文章
头条资讯
关注、评论赢好礼!美光2022台北国际电脑展主题演讲精选:数据中心专辑
2017 TIF深度剖析 | 如何在设计各的个阶段提高您的电源效率?
答题赢好礼 | ADI 生命体征监测技术:对人体实施状态监控
干货|100个软硬件都要懂的示波器基础知识
浅谈工程师的调试法宝(二)---半主机的巧妙应用
傅里叶变换、拉普拉斯变换、Z 变换的联系是什么?为什么要进行变换?
新增数据手册
HGN-365A01S-10-1AS
2200AGG1008F2FB
7207J50V9PE3
DH-182-104-236-SH30-276
1301-3-78-1-4
FRSM201022K900TCR0.2AST
热搜器件
EE-SX954-W 1M
S12ZVML-MINIBRD
XLL726300.000000I
MC74VHCT04ADTR2G
BD4957G-TR
0338-0-15-01-15-27-10-0
推荐下载
RF包络检波在漏极调制系统中的应用
PSTM光纤探针腐蚀系统的研制
计算机控制技术在电力电子电路中的应用
非阻塞模式LCD多级菜单的设计及其数据结构
芯联半导体---LED驱动IC上典型应用方案
0446、ATMEGA848-S52-贴片DXP资料.rar
推荐关注
Profinet 通讯网关:解锁 Modbus TCP从站变身主站的密码
BEV感知技术:多相机数据采集与高精度时间同步方案
In depth analysis of alternative SN6507 products(替代SN6507)
《Linux内核深度解析》-文件系统简单介绍的学习
《Linux内核深度解析》-文件系统总体架构
《Linux内核深度解析》-系统调用学习