Linux C--shell的helloworld

使用shell语法来编写出来的程序,这个程序叫shell脚本。
shell语法不同于C语言,有独特变量定义与赋值,循环结构,判断语句…

shell的英文翻译是"贝壳"的意思。在贝壳的外部是用户空间,在贝壳内部是内核空间,用户与内核之间进行交互时,就一定要通过shell。

既然shell是可以解析用户输入的命令,究竟是谁来解析?
其实命令行是由于bash进程打印出来,而命令一定要写在命令行后面才会生效,因为写在命令行后面才会被bash解析。
只要终端一启动 , 默认执行/bin/bash这个程序,接着开启了新的bash进程。

分析终端、bash、命令之间的关系
查看整个linux系统所有进程ID号
$ ps -ef 类似于打开windows中任务管理器

谁开启的进程进程ID父进程ID进程的名字代表
root10/sbin/init splashlinux系统中的祖先进程
jj38642602/usr/lib/gnome-terminal/gnome-terminal-serverterminal终端
jj38693864bashbash进程其实是terminal终端的子进程
jj40323869ps -efshell命令其实是bash进程的子进程

命令一定要在写在命令行后面才会生效
$ gedit a.c gedit进程正在运行,终端命令行没有办法返回!
ls
cd 没有命令行解析这些命令。
pwd

shell编程
shell编程其实就是将一些shell命令写入到一个文件中,然后文件依次执行shell命令。
C语言程序与shell脚本区别?

-C语言程序shell脚本
语法:C语言shell语法
是否需要编译:需要编译器编译不需要编译
文件后缀:****.c****.sh
文件存放位置:linux任意目录除了共享目录之外的其他目录 ,一般存放在家目录。

C语言程序与shell脚本运行方式对比
C语言:
1)在linux任意目录创建一个.c文件: touch test.c
2)使用编辑器编辑程序: gedit test.c
3)编辑完之后,需要使用编译器进行编译: gcc test.c -o test 由gcc编译器编译出来的程序默认都是有执行权限。
4)执行文件即可。 ./test

shell:
1)在除了共享目录之外的其他目录下创建一个新的文件 touch test.sh
2)使用编辑器编辑脚本: gedit test.sh
3)修改脚本的权限: chmod 777 test.sh
4)执行脚本: ./test.sh

shell脚本的helloworld版本
C语言:

#include <stdio.h>

int main()
{
	printf("helloworld!\n");
	return 0;
}

shell:
1)没有main函数,由于不能调用linux函数,所以头文件也是没有。但是命令是有返回值!
2)shell脚本中第一行一定是 #!/bin/bash -> 指明解析器的路径
3)echo命令如果需要打印字符串中有转义符号需要解析,那么需要使用-e

shell:

#!/bin/bash
echo "helloworld"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值