注册
登录
电子工程世界-论坛
返回首页
EEWORLD首页
频道
EE大学堂
下载中心
Datasheet
专题
单片机
物联网
汽车电子
嵌入式
手机/便携
模拟电子
家用电子
网络通信
电源管理
工业控制
测试测量
半导体设计/制造
安防电子
传感器
医疗电子
caizhiwei的个人空间
https://home.eeworld.com.cn/space-uid-403336.html
[收藏]
[复制]
[分享]
[RSS]
空间首页
动态
记录
日志
相册
主题
分享
留言板
个人资料
借用开发板
论坛
淘帖
Collection
查看新帖
最新回复
社区活动
联系管理员
我的空间
帖子
日志
收藏
好友
勋章
积分
安全验证
请完成以下验证码
日志
Linux系统脚本的三种执行方式
已有 960 次阅读
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
加为好友
给我留言
打个招呼
发送消息
热门文章
头条资讯
Microchip发涨价函!
突发!华为遣返在深美国员工!
不需要mask生产芯片,又一家公司在尝试
Arm汽车电子开发人员社区上线,这些资源你应该知道
ADI高品质高性能产品与工业应用研讨会-重庆站
融合、突破:自动化测试测量模式已悄然改变
新增数据手册
C1210X202M5HACTU
SM13T-SR-FREQ2-20K1GG
UM-5-FREQ-STBY1-TOL2-AGE1-CL3-DL2
RJMG1J30250011R
SR2225BX684Z2NT95
H25D-F2-202-A-28V/V-EC-NI
热搜器件
MS27473E20F35AA
ABS07AIG-32.768kHz-1-T
1989722
0468.500NR..
CR0603-JW-200ELF
SCE2B76A0710ASB001
推荐下载
创维彩电6p18_6p18d图纸
开关电路拓扑的分析和推演
完全手册_51单片机C语言开发详解系列之第11章_综合实例——多功能数字
儿童上臂三角肌注射技术的研究
IGBT驱动器驱动能力计算
磊科NR205P路由器升级包
推荐关注
FRDM-MCXW71开发板快速上手
电子称重传感器c3误差怎么办,减少c3误差的解决方案?
ADTF为何能赢得奥迪、博世等巨头的青睐?
SiC碳化硅MOSFET功率模块及SiC-MOSFET单管在充电桩电源模块中的应用
电子压力传感器SP1和SP2代表什么,SP1和SP2的特点与应用
Linux系统更换开机logo方法教程, RK3562开发板演示