sh是一个shell。运行sh a.sh,表示我使用sh来解释这个脚本;如果我直接运行./a.sh,首先你会查找脚本第一行是否指定了解释器,如果没指定,那么就用当前系统默认的shell(大多数linux默认是bash),如果指定了解释器,那么就将该脚本交给指定的解释器

比如a.run文件内容是这个:

1

2

#!/usr/bin/python

print("This is Python script")

那么你如果运行./a.run,结果就是输出一行文字,但是如果你运行sh a.run,会报错

1

2

3

4

5

[feishu@localhost tmp]$ ./a.run

This is Python Script

[feishu@localhost tmp]$ sh a.run

a.run: line 2: syntax error near unexpected token `"This is Python Script"'

a.run: line 2: `print("This is Python Script")'

因为这是一个python脚本,sh看不懂(注意,linux下后缀通常不是很严格,.run后缀是随意命名的).
你是写了一个shell脚本,想问./a.sh和sh a.sh区别,这个要看你系统默认shell和脚本了,如果你写的是一个sh ( Bourne shell )脚本而且第一行申明了解释器为sh,那么没区别,但是如果你写的是一个bash(Bourne Again SHell) 脚本,那结果就可能有区别了,因为bash和sh的内置命令、语法等有些不一样。

----------------------------------------------------补充一下----------------------------------------------------
我的测试环境是cantos 6.4

[feishu@localhost tmp]$ ls -al `which sh`
lrwxrwxrwx. 1 root root 4 11月 23 20:41 /bin/sh -> bash
[feishu@localhost ~]$ echo $SHELL
/bin/bash

可以看到 sh其实就是bash,那么在这个发行版中,你如果你写的是一个shell脚本,而且脚本第一行没申明shell解释器,那么使用./a.sh和sh a.sh并没有什么区别

linux中./和sh的区别相关推荐

  1. linux中的sh脚本语法

    linux中的sh脚本语法 玩linux都知道sh脚本的方便,但如何编写sh脚本却是像我这样的新手和菜鸟的难题.能不能编写得出来是一回事,了不了解又是另一回事.抱着好好学习,天天向上的精神,大家有空就 ...

  2. 查看linux中的sh指向哪,什么是Linux的Shell脚本和怎么执行脚本?

    1.什么是Shell?shell shell是外壳的意思,就是操做系统的外壳.咱们能够经过shell命令来操做和控制操做系统,好比Linux中的Shell命令就包括ls.cd.pwd等等.总结来讲,S ...

  3. linux bash 和 sh的区别

    Linux 中的 shell 有很多类型,其中最常用的几种是: Bourne shell (sh).C shell (csh) 和 Korn shell (ksh), 各有优缺点.Bourne she ...

  4. linux中pwd和oldpwd区别,linux中的pwd命令

    Linux系统中如何查看当前工作目录路径呢?使用pwd命令就可以做到.下面由学习啦小编为大家整理了linux中的pwd命令的相关知识,希望对大家有帮助! linux中的pwd命令详解 Linux中用 ...

  5. linux中vfs和fs区别,解析Linux中的 VFS 文件系统机制(rootfs)一

    本文阐述 Linux 中的文件系统部分,源代码来自基于 IA32 的 2.4.20 内核.总体上说 Linux 下的文件系统主要可分为三大块:一是上层的文件系统的系统调用,二是虚拟文件系统 VFS(V ...

  6. Linux中Vi和Vim区别

    它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面. vim的这些优势主要体现在以下几个方面: 1.多级撤消 我们知道在vi里,按u只能撤消上次 ...

  7. linux中gid和groups区别,linux用户与组管理

    linux安全系统的核心是用户账户,每个使用者使用一个账户名及与该账户关联的密码登入linux系统.使用者对系统资源的访问权限取决于其登录时所用的账户. 每个账户在创建时会被分配一个惟一的标识UID, ...

  8. linux中exit和fatal区别,关于Linux系统命令中exit与exit的区别

    关于Linux系统命令中exit与exit的区别 注:exit()就是退出,传入的参数是程序退出时的状态码,0表示正常退出,其他表示非正常退出,一般都用-1或者1,标准C里有EXIT_SUCCESS和 ...

  9. ubuntu中bash,sh,./,bash区别

    当我们使用 sh test.sh .bash test.sh . ./test.sh 运行脚本都会使用一个新的shell环境来执行脚本内的命令, 当子进程完成后,子进程内的各项变量和操作将会结束而不会 ...

最新文章

  1. maven可选依赖(Optional Dependencies)和依赖排除(Dependency Exclusions)
  2. Codeforces 1110 简要题解
  3. ul+js模拟select
  4. php 栏目循环,帝国CMS listshowclass循环栏目标签_PHP教程
  5. OpenCV访问像素点的灰度值
  6. 卧槽!两大抓包神器的视频教程来啦!
  7. 关于文件整理的一些心得
  8. 检测到 LoaderLock Message Microsoft.DirectX.dll”正试图在 OS 加载程序锁内执行托管代码。...
  9. Android 应用性能优化(2)---优化Android 应用启动速度
  10. android 字体px转sp,Android中px,dp,sp区别及换算
  11. Centos7搭建虚拟用户FTP
  12. 关于co-NP的理解
  13. c++ 使用nacos_使用SpringBoot和Seata实现Dubbo分布式事务管理
  14. Springboot的工作机制:1 Springboot初体验
  15. ubuntu20.04下源码安装hyperscan库安装记录
  16. android8 锁屏壁纸,小米8怎么设置锁屏壁纸?小米8锁屏壁纸三种设置教程
  17. 如何创作属于自己的NFT?
  18. 如何用PPT做一张高大上的照片
  19. Java为PDF文档加密
  20. scrapy爬取51job职位信息(针对2020.851job新的反爬虫机制)

热门文章

  1. 《在细雨中呼喊》---余华 (书摘)
  2. 数据结构与算法第2章:链表
  3. asyne和await
  4. 电大C语言程序设计形考任务3,国开学习网电大C语言程序设计形考任务3答案
  5. 奥斯汀页眉怎么设置_word红头文件怎么制作
  6. Make Clobber 和 Make Clean
  7. 工程流体力学笔记暂记16(欧拉积分和伯努利积分)
  8. Linux 挂载nas盘
  9. Python笔记6 面向对象
  10. 计算机入门知识(如何使用操作系统)