要实现的功能
|
C
语言编程
|
Linux Shell
脚本编程
|
程序
/
脚本的参数传递
|
int
main(int
argc
,
char** argv
)
{
if
(argv
!= 4) {
printf
( “Usage: %s arg1 arg2 arg3”, argv
[0] );
return 1;
}
printf
(“arg1:%s/n”,argv[1]);
printf
(“arg2:%s/n”,argv[2]);
printf
(“arg3:%s/n”,argv[3]);
return
0;
}
|
#!/bin/sh
if [ $# -lt
3 ]; then
echo "Usage: `basename
$0` arg1 arg2 arg3" >&2
exit 1
fi
echo "arg1: $1"
echo "arg2: $2"
echo "arg3: $3"
exit 0
|
int
main(int
argc
,
char** argv
)
{
int
i
;
for
(i
=1; i
<=argc;i
++) {
printf
(“arg:%s/n”,argv
[i
]);
}
return
0;
}
|
#!/bin/sh
while [ $# -ne
0 ]
do
echo "arg
: $1"
shift
done
|
逻辑
/
数值运算
|
if (d == 0)
|
if [ "$D" -eq
"0" ] ; then
|
if (d != 0)
|
if [ "$D" -ne
"0" ] ; then
|
if (d > 0)
|
if [ "$D" -gt
"0" ] ; then
|
if (d < 0)
|
if [ "$D" -lt
"0" ] ; then
|
if (d <= 0)
|
if [ "$D" -le "0" ] ; then
|
if (d >= 0)
|
if [ "$D" -ge
"0" ] ; then
|
字符串比较
|
if (strcmp
(str,”abc
”)==0) {
}
|
if [ "$STR" != "abc
" ]; then
fi
|
输入和输出
|
scanf
(“%d”,&D
);
|
read D
|
printf
( “%d”, D);
|
echo –n $D
|
printf
( “%d”,D
);
|
echo $D
|
printf
(
“Press any to
continue...”);
char ch
=getchar
();
printf
( “/nyou
pressed: %c/n”, ch
);
|
#!/bin/sh
getchar
()
{
SAVEDTTY=`stty
-g`
stty
cbreak
dd
if=/dev/tty
bs
=1 count=1 2> /dev/null
stty
-cbreak
stty
$SAVEDTTY
}
echo
-n "Press any key to continue..."
CH=`getchar
`
echo ""
echo "you pressed: $CH"
|
|
read D <&3
|
程序
/
脚本的控制流程
|
if (isOK
)
{
//1
} else if (isOK2) {
//2
} else {
//3
}
|
if [ isOK
]; then
#1
elif
[ isOK2 ]; then
#2
else
#3
fi
|
switch (d)
{
case 1:
printf
(“you select 1/n”);
break;
case 2:
case 3:
printf
(“you select 2 or
3/n”);
break;
default:
printf
(“error/n”);
break;
};
|
case $D in
1) echo "you select 1"
;;
2|3) echo "you select 2 or 3"
;;
*) echo "error"
;;
esac
|
for (int
loop=1; loop<=5;loop++) {
printf
( “%d”, loop);
}
|
for loop in 1 2 3 4 5
do
echo $loop
done
|
do {
sleep(5);
} while( !isRoot
);
|
IS_ROOT=`who | grep
root`
until [ "$IS_ROOT" ]
do
sleep 5
done
|
counter=0;
while( counter < 5 ) {
printf
( “%d/n”, counter);
counter++;
}
|
COUNTER=0
while [ $COUNTER -lt
5 ]
do
echo
$COUNTER
COUNTER=`expr
$COUNTER + 1`
done
|
while (1) {
}
|
while :
do
done
|
break;
|
break
或
break n
,
n
表示跳出
n
级循环
|
continue;
|
continue
|
函数与过程的定义
|
void hello()
{
printf
( “hello/n” );
}
…
//
函数调用
hello();
|
hello()
{
Echo “hello”
}
或者
function hello()
{
Echo “hello”
}
…
#
函数调用
hello
|
函数的参数和返回值
|
int
ret = doIt
();
if (ret == 0) {
printf
( “OK/n” );
}
|
doIt
if
[ “$?” –eq
0 ] ; then
echo
“OK”
fi
或者
RET = doIt
if [ “$RET” –eq
“0” ] ; then
echo
“OK”
fi
|
int
sum(int
a,int
b)
{
return
a+b
;
}
int
s = sum(1,2);
printf
(“the sum is: %d/n”, s);
|
sum()
{
echo -n "`expr
$1 + $2`"
}
S=`sum 1 2`
echo "the sum is: $S"
|
bool
isOK
() { return false; }
if (isOK
)
{
printf
( “YES/n” );
} else {
printf
( “NO/n” );
}
|
isOK
()
{
return 1;
}
if isOK
; then
echo "YES"
else
echo "NO"
fi
|
相关推荐
虽然学过Linux Shell编程,但由于编写Shell脚本的机会实在是比较...所以在编程的时候往往脑海里面首先浮现的是用C语言怎么去编写它,所以我干脆拿C语言的语法来和Shell编程的语法作个对比表,这样查起来就方便了,哈:
shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。shell即使一种命令语言,又 是一种程序设计语言。 shell脚本 是一种shell编写的脚本程序。 shell编程跟Java、PHP 编程一样,只要有一个能编写代码的文本...
内容全面:涵盖Linux下C语言基础、开发工具、Linux系统机制和Shell编程等 讲解详细:对每个知识点都从原理、作用、语法、示例和技巧等多角度进行分析 贴近实际:对开发中经常用到的Linux进程操作、文件操作和...
shell是一个用C语言编写的程序,它是用户使用Linux的桥梁。shell即使一种命令语言,又 是一种程序设计语言。 shell脚本 是一种shell编写的脚本程序。 shell编程跟Java、PHP 编程一样,只要有一个能编写代码的文本...
hell 是用户和 Linux 操作系统之间的接口 Linux 中有多种 shell 其中缺省 使用的是 bash Linux 系统的 shell 作为...和类似 C语言的语法 它不仅和 Bash shell是提示符兼容 而且还提供比 Bash shell 更多的提示符参数
内容全面:涵盖Linux下C语言基础、开发工具、Linux系统机制和Shell编程等 讲解详细:对每个知识点都从原理、作用、语法、示例和技巧等多角度进行分析 贴近实际:对开发中经常用到的Linux进程操作、文件操作和...
Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言(就是你所说的shell脚本)。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它...
全书共22章,从Linux系统安装开始,讲解了Linux常用命令、Shell编程、C语言基础、指针与函数、C程序网络编程、图形界面程序设计等内容。书中通过大量的实例来讲解知识要点,读者可以通过这些实例和练习对C程序有一个...
内容全面:涵盖Linux下C语言基础、开发工具、Linux系统机制和Shell编程等 讲解详细:对每个知识点都从原理、作用、语法、示例和技巧等多角度进行分析 贴近实际:对开发中经常用到的Linux进程操作、文件操作和...
通过这些资源,大家可以系统地学习编程的基础知识,掌握不同语言的语法和应用,深入了解软件开发的流程和技巧。此外,我还整理了一些优质的编程书籍、博客和社区论坛,以便大家可以与其他编程爱好者交流经验,解决...
第8章 嵌入式linux c语言基础——arm linux内核常见数据结构 225 8.1 链表 226 8.1.1 链表概述 226 8.1.2 单向链表 226 8.1.3 双向链表 233 8.1.4 循环链表 234 8.1.5 arm linux中链表使用实例 ...
知识点1: 用C语言写一个hello word程序 知识点2: GCC与GDB 简介 知识点3: 工程文件Makefile 知识点4: 编译安装软件,找一个软件 实战项目: C语言实现一个简单的命令行系统 第三阶段 实战Linux网络与运维 第六...
2.6 shell的语法 2.6.1 变量 2.6.2 条件 2.6.3 控制结构 2.6.4 函数 2.6.5 命令 2.6.6 命令的执行 2.6.7 here文档 2.6.8 调试脚本程序 2.7 迈向图形化:dialog工具 2.8 ...
2.6 shell的语法 2.6.1 变量 2.6.2 条件 2.6.3 控制结构 2.6.4 函数 2.6.5 命令 2.6.6 命令的执行 2.6.7 here文档 2.6.8 调试脚本程序 2.7 迈向图形化:dialog工具 2.8 综合应用 ...
2.6 shell的语法 2.6.1 变量 2.6.2 条件 2.6.3 控制结构 2.6.4 函数 2.6.5 命令 2.6.6 命令的执行 2.6.7 here文档 2.6.8 调试脚本程序 2.7 迈向图形化:dialog工具 2.8 ...
shell的if语法和C语言等高级语言非常相似,唯一需要注意的地方就是shell的if语句对空格方面的要求比较严格(其实shell对所有语法的空格使用都比较严格),如果在需要空格的地方没有打上空格,都会报错。如if [ $1x == ...
实验一: gcc编译器(验证性、2学时) 一、实验目的: 1)熟悉Shell操作环境。 2)掌握在Linux下的C语言代码编译运行的方法。 3)初步了解C语言库函数与Linux系统调用。... 2)掌握Shell程序语法结构。
目录 历史 前言 I. C语言入门 1. 程序的基本概念 1. 程序和编程语言 2. 自然语言和形式语言 ...3. 在Linux C编程中使用Unicode和UTF-8 B. GNU Free Documentation License Version 1.3, 3 November 2008 参考书目 索引
bash来自于BSD Unix,语法非常类似于C语言,所以通常有C/C++编程背景的开发人员最喜欢使用。 ksh是对sh的扩展,且吸收了csh的一些有用的功能,但是由于开始ksh的license是AT&T,所以后来出现了很多的ksh的开源版本,...
本项目旨在能像一般的shell一样具备基本功能:用户输入命令与参数,能正常执行命令,使用C语言实现,最终功能和语法规则会以Ubuntu中自带的shell为目标进行实现。