虽然学过Linux Shell编程,但由于编写Shell脚本的机会实在是比较少(通常在项目初期搭建开发环境时编写得比较多一些),所以一些语法久而久之就会忘了,一个简单的语法去翻书效率实在是慢,所以就个人整理了一个表格,由于我用的编程语言是C/C++,所以在编程的时候往往脑海里面首先浮现的是用C语言怎么去编写它,所以我干脆拿C语言的语法来和Shell编程的语法作个对比表,这样查起来就方便了,哈:
(注:不知道为什么从WORD中粘帖的表格在这里显示会不完整,在编辑的时候又是正常的,闷)
要实现的功能
|
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语法与C语言语法对比详解 #### 引言 在IT行业中,尤其是在系统管理和自动化运维领域,熟悉Linux Shell编程对于提升工作效率至关重要。然而,由于Shell脚本编写的机会相对较少,很多程序员容易忘记...
附录可能包含Shell命令速查表、常见问题解答等补充资料,提高学习效率。 总的来说,“LINUX SHELL脚本攻略(中文版带书签)”是一本适合初学者和进阶者的实用教程,无论你是开发人员、测试人员还是运维工程师,都能...
7. **Linux速查表**:包含Linux常用命令和Shell脚本编写技巧。 8. **Java速查表**:总结Java基础语法、数据类型、集合框架、线程管理等。 9. **Ruby速查表**:快速回顾Ruby语法和Ruby on Rails框架的基础知识。 ...
Bash(Bourne-Again SHell)是Unix和Linux系统中的默认shell,主要用于命令行交互和脚本编写。以下是Bash编程的主要概念: 1. **变量**: - 变量赋值:`VAR=value`,无需声明类型。 - 环境变量:影响整个shell...
- 常用Linux命令:提供一份常用的Linux命令速查表,方便日常使用。 - 开源社区与学习资源:推荐一些优秀的在线社区和教程,鼓励读者深入学习和交流。 通过阅读《Shell编程大全》,读者不仅可以掌握Shell编程的...
Bash速查表则专注于Unix/Linux命令行操作,包括文件管理(如`cd`、`ls`、`cp`、`mv`和`rm`)、文本处理(`grep`、`sed`、`awk`)以及流程控制(`if`、`for`、`while`循环和管道`|`)。它还可能包含一些高级特性,如...
- **常用命令**: 提供常见Unix/Linux命令的速查表。 - **社区和文档**: 引导读者找到更多学习资源,如Stack Overflow、man手册页等。 在"教程重要说明.txt"中,可能包含对阅读本书的注意事项、作者的额外提示,...
标题 "cheatsheets" 暗示这可能是一个包含各种技术速查表的资源集合,这些速查表通常用于帮助用户快速回忆或学习各种IT相关的命令、语法或操作流程。"cheatsheets" 在IT领域非常受欢迎,因为它们提供了一种高效的...
最后,书中的附录通常会提供常用命令的速查表,方便读者随时查阅。 总的来说,这是一本全面且深入的Shell编程教程,无论你是初学者还是有经验的Linux用户,都能从中获益。通过学习本书,你将能够熟练地利用Shell...
文件名称列表中的“UnixLinux命令速查表.doc”是一个文档,通常这类速查表会包含常见的Linux命令及其参数,是学习和工作时的便捷参考。如`man`命令提供命令的帮助文档,`sudo`用于以管理员权限执行命令,`find`用于...
5. **Linux CheatSheet.zip**:这个压缩文件可能包含了一份Linux命令的速查表,对于在Windows环境下使用BASH Shell的用户来说非常有价值。通过查阅这份资料,用户可以快速查找和学习各种Linux命令,提高工作效率。 ...
#### 三、Bash Shell语法详解 本书通过大量的实例来详细介绍Bash Shell的各种特性和语法,包括但不限于: - **基础语法**:介绍基本命令的使用方法,如变量赋值、条件判断、循环控制等。 - **命令替换**:讲解如何...
**基础学习篇快速索引指令与用语速查表** 提供了Linux常用命令的索引,方便初学者快速查找和学习。以下是一些基础且重要的Linux命令和概念: - **alias**:为常用的命令创建快捷方式,以简化复杂或长命令的输入。 -...
9. Shell脚本编程:讲解了Bash Shell的基本语法和编程技巧,如变量、循环、函数定义等。 10. 系统管理工具:涉及一些系统管理工具的使用,比如chkconfig、apt-get、yum等。 11. 网络配置与管理:介绍了网络基础...
- **bash**:第十一章对bash shell进行了全面介绍,包括其基本语法、环境变量设置等内容。 - **bashrc**:在第十一章、4.3节中介绍了.bashrc文件的作用,该文件通常用于存储用户的个性化bash配置。 - **bc**:第五章...
"〜/ .bash_profile"是Unix或类Unix系统(如macOS和Linux)中用户主目录下的一个配置文件,用于设置shell的环境变量和别名,这对于定制命令行体验至关重要。提及“示例集成”可能意味着这个集合不仅包含注释和参考...
- `cheat_sheets/`:简洁的速查表,方便快速查阅常用命令和语法。 - `problems_and_solutions/`:常见问题及其解决方案的集合。 - `scripts_library/`:实用的Shell脚本库,可直接应用或作为模板。 通过学习和实践...
15. **Cheatsheet**:简明教程或速查表,通常包含常用命令和技巧,方便用户快速查阅。 16. **Ansible Galaxy**:Ansible的社区资源仓库,用户可以分享和查找其他人的角色(预定义的任务集)。 17. **Kali Linux ...
在文件列表中提到的`sunjie.zip`可能是一个包含个人或集体整理的UNIX参考资料压缩包,可能包括自定义教程、命令速查表、配置示例等。解压并查阅这个文件可以提供更具体、实用的UNIX知识,帮助用户快速上手或提升技能...