SHELL脚本运行的几种方法以及区别

 #1 给脚本加上执行权限chmod u+x a.sh, 而后就可以直接用全路径来执行脚本了,比如当前文件夹下用./a.sh,如果如果脚本所在目录在PATH环境变量之中, 则直接用a.sh即可(这和运行我们自己编写的程序是一个道理)

#2 sh/bash  ./a.sh  这种情况不需要脚本具有执行权限

以上两种执行方式都是在子shell中执行的,也就是说当前shell需要启动另外一个shell,用来执行a.sh内的命令

 

#1 source  ./a.sh  

#2 ../a.sh(注意前面的 . )

 

以上两种执行方式是在当前shell下执行,并不需要建立子shell

source和 . 命令的作用:用来执行一个脚本

前两种方式和后两种方式的另外区别:如果你在一个脚本里export $KKK=111 ,如果你用./a.sh执行该脚本,执行完毕后,你运行 echo $KKK ,发现没有值,如果你用source来执行 ,然后再echo ,就会发现KKK=111。因为调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结构并没有反应到父shell里,但是source不同它就是在本shell中执行的,所以可以看到结果。

# 执行脚本时是在一个子shell环境运行的,脚本执行完后该子shell自动退出

# 一个shell中的系统环境变量只对该shell或者它的子shell有效,该shell结束时变量消失(并不能返回到父shell中) 
# 用export定义的变量会被复制到该shell的子shell中

# 不用export定义的变量只对该shell有效,对子shell也是无效的。

 

转载于:https://www.cnblogs.com/jamesbd/p/3730567.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
shell脚本中统计程序执行时间有几种方法。一种方法是使用date命令来记录开始时间和结束时间,然后计算它们之间的时间差。例如,可以使用以下命令获取开始时间和结束时间,并计算它们之间的差值: ``` startTime=`date +%Y%m%d-%H:%M:%S` startTime_s=`date +%s` # 脚本执行的代码 endTime=`date +%Y%m%d-%H:%M:%S` endTime_s=`date +%s` sumTime=$[ $endTime_s - $startTime_s ] echo "$startTime ---> $endTime" "Total: $sumTime seconds" ``` 另一种方法是使用time工具来计算脚本执行时间。当你运行一个脚本时,在脚本前加上time关键字,例如`time sh xxx.sh`,会返回三个时间数据: - real:该命令的总耗时,包括用户、系统和IO等待时间。 - user:该命令在用户模式下的CPU耗时,即内核外的CPU耗时,不包括IO等待时间。 - sys:该命令在内核中的CPU耗时,不包括IO和时间片切换耗时。 使用这两种方法之一,你可以方便地统计shell脚本运行时间。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【ShellShell时间相关|统计Shell脚本执行时间|sleep](https://blog.csdn.net/bandaoyu/article/details/115525067)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值