注册
登录
电子工程世界-论坛
返回首页
EEWORLD首页
频道
EE大学堂
下载中心
Datasheet
专题
单片机
物联网
汽车电子
嵌入式
手机/便携
模拟电子
家用电子
网络通信
电源管理
工业控制
测试测量
半导体设计/制造
安防电子
传感器
医疗电子
caizhiwei的个人空间
https://home.eeworld.com.cn/space-uid-403336.html
[收藏]
[复制]
[分享]
[RSS]
空间首页
动态
记录
日志
相册
主题
分享
留言板
个人资料
借用开发板
论坛
淘帖
Collection
查看新帖
最新回复
社区活动
联系管理员
我的空间
帖子
日志
收藏
好友
勋章
积分
安全验证
请完成以下验证码
日志
Linux系统脚本的三种执行方式
已有 968 次阅读
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
加为好友
给我留言
打个招呼
发送消息
热门文章
头条资讯
字节跳动一收再收
ChinaJoy高通骁龙主题馆看点揭秘
AMD总裁兼首席执行官苏姿丰博士出席CES 2021,展示了一个数字化先行的世界
使用trace-event解决系统不能深度睡眠的问题
毫米波立体成像雷达
业内人士警告:假冒芯片正滑入供应链
新增数据手册
UB16NBKW015F-JB
D38999/27N-H-36SB
86867-766HLF
0502-300G500-AE474
122A20-E5M-02-WA
P-2512E2943DGTI
热搜器件
PWC2512-15R4FT1
EKMH350VSN123MQ50T
NPC-410-050A-3-N
3-1775802-2
模数转换器-ADC 10-BIT
558556-2
推荐下载
做DSP之前必须明白的基本问题
单片机误动作原因的分析及解决方法
嵌入式系统开发板盘带关于can总线部分的c源码
AP85T03AS
欧姆龙plc学习资料
磁性目标的单点磁梯度张量定位方法
推荐关注
CAN数据赋能新能源江淮IEV7数字化推动智能驾培创新发展
差分晶振-LVPECL到LVDS的连接
数字隔离器,如何提升储能系统的安全与效能?
COB灯带,LED照明,UVC光源,COB大功率光源等恒流驱动芯片NU505应用电路图
ROS2导入机械臂URDF竟有这些坑?SO-ARM100 Rivz可视化避坑指南
60V耐压/支持PWM调光 /无需专用PCB设计/COB灯带/UVC光源/COB大功率光源芯片NU505应用 ...