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. java opencv 图片放大缩小,角点检测和边缘检测(14)
  2. C:#define用法
  3. [python调试笔记] 编译运行h5py
  4. 时序数据库InfluxDB
  5. java按钮改变窗口大小_java – 当我们调整窗口大小时,Container中的元素如何调整?...
  6. nginx之lua_shared_dict
  7. 设计模式之单例模式介绍
  8. 【PostgreSQL-9.6.3】修改监听的IP和端口
  9. php怎么生成缩略图,php怎么生成缩略图
  10. 软件测试简历上的职业技能怎么写,软件测试岗位个人技能范文
  11. c语言计算梯形的面积
  12. git远程上传gitbub的相关问题
  13. java round指令_java中Math.round()的用法
  14. Markdown Preview Enhanced (MPE)踩坑记录
  15. 软件测试可用性测试方法,几种常用的可用性测试的方法
  16. 设置编程软件的背景颜色
  17. 学会这个2021不一样的感觉学Java性能之 垃圾收集算法
  18. CS224N Assignment3 #3: Dependency Parsing(2022 winter)
  19. 腾讯地图标记点击事件
  20. ie自带css定位,CSS实现元素相对于浏览器窗口进行定位_css

热门文章

  1. Android开发——贝塞尔曲线解析
  2. 基于爬虫爬取的数据,完成数据展示网站
  3. 数据库系统,数据库,数据库管理系统
  4. python求2数之和
  5. Flutter | 和小老弟一起学资源管理
  6. 【tkinter组件专栏】LabelFrame:规划布局frame的小老弟
  7. 第一章 企业管理概论
  8. PCB软件对比分析(AD、Pads、Allegro)
  9. HFS,超好用的本地文件分享利器
  10. 如何创建批处理文件?