1、 set命令
当没有参数的时候,列出系统中所有的自定义变量值;当有参数的时候,重置基本参数如$1、$2等。如set `date` 将date命令的输出当作输入参数;
2、let命令
执行算术运算。功能如i=j+1,shell语法为:
let “i=$j+1”,等同于 ‘expr’。 后者只能作用于整数,如 i=`expr $i+1`; 如果使用非整数,退出状态不为0
3、expr
expr也有模式匹配功能。
可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任何字符重复0次或多次。
$value=accounts.doc
$expr $value : '.*'
输出:12
在expr中可以使用字符串匹配操作,这里使用模式. d o c抽取文件附属名。
$expr $value : '\(.*\).doc' 在圆括号前加转义符号是表示圆括号是用于提取功能的。
输出:accounts
4、shift命令
将参数表向左移动一个位置,$2变成$1,...,依次类推。
5、shell中可以嵌套命令,使用\`来保护内层命令,如`cd \`pwd\``。
6、设置IFS为换行符:IFS=’
’(还真得换行)
7、两个特殊操作
命令1 && 命令2 :只有在命令1执行成功时才执行命令2;
命令1 || 命令2 :命令1失败才执行命令2;
8、变量赋值
“”引用的字符串需要shell解析其中的``、$、\等特殊字符,而’’引用的字符串则被看作完全的
字符串,echo ‘`pwd`’将输出`pwd`;而echo “`pwd`”将输出当前目录;
变量
|
含义
|
$var
|
Var的值,若无定义则无值
|
${var}
|
同上,用于同$varx等类型变量区分
|
${var-thing}
|
Var有定义时,取值$var;无定义时取值thing,而$var不变
|
${var=thing}
|
Var有定义时,取值$var;无定义时取值thing,$var值设为thing
|
${var?message}
|
有定义时取值$var;否则打印message并退出shell,若message为空串,打印var:parameter not set
|
${var+thing}
|
有定义时取值thing;否则无值
|
9、shell内部变量
变量
|
含义
|
$#
|
参数个数
|
$*
|
所有参数
|
$@
|
同上,稍有区别
|
$-
|
Shell的选择项
|
$?
|
上次执行命令返回值
|
$$
|
Shell的进程标识符
|
$!
|
用&启动的最后一个命令的进程标识符
|
$HOME
|
cd命令的缺省参数
|
$IFS
|
参数分割词的字符表
|
$MAIL
|
信件文件,当其改变时给出信息you have mail
|
$PATH
|
搜索命令的目录表
|
$PS1
|
提示符串,缺省为$
|
$PS2
|
后继命令行提示符,缺省为>
|
有关$*和$@得归纳:
$*和$@扩展为参数,并被重复扫描;参数得空格将字符串分成多个参数;
“$*”表示shell文件的所有参数及其空格连在一起作为单个词处理;
“$@”与shell文件接收的参数等价,参数中的空格被忽略,其结果是等同于原来参数的一个单词列表。
10、 shell模式匹配规则
* 匹配任意字符串,包括空字符串
? 匹配任意单字符串
[ABC] 匹配ABC中任意字符
“…” 完全与…匹配,引号保护特殊字符,也可以写成’…’
\C 匹配C
11、 case语句
case word in
模式1) 命令;;
模式2) 命令;;
…
*) 命令[;;]
esac
只能匹配一个模式
12、 if 语句
if 命令
then
else
fi
其中换行很重要,then、else和fi仅在换行或分号之后被识别,else部分可选。可以利用case语句替代if和test测试语句,对于test命令不是内部命令的情况下,case语句执行的要快;
13、循环
1)for i [in 文件(参数)列表]
do
循环体
done
如果i后面没有in部分,则隐含地表示对shell文件的全部参数,即$*
2) While 命令
do
循环体,只要命令返回状态为真便继续进行
done
3)until 命令
do
循环体,只要命令返回状态为假便继续执行
Done
例如:
While sleep 60
do
…
Done
每隔60秒执行一次循环中的操作;
另外,where处的控制命令可以是true、false、或者是:,冒号命令是一个shell内部命令,仅仅计
算参数值,然后返回“真”,但是它不需要调用系统中的命令,所以效率比true命令高;
4)break命令:退出循环,取自C语言。
14、点号命令:
将文件作为标准输入,从中读入一行一行的命令在当前shell中执行,不要求文件具有可执行权限;
15、 文件命令习惯,后面加上当前进程号码$$为好
16、标准输入命令read
$read greeting
Hello,world
$echo $greeting
Hello,world
17、here document 输入
<<s 从本地输入,直至出现字符串s为止,但是要解析输入中的特殊字符,``,$和\。
<<’s’ 同上,不进行替换。
<<\s 同上。
本文转自:
http://blogold.chinaunix.net/u1/34739/showart_283263.html
其它相关资料:
http://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html
Linux Shell语法速查表(用C语言语法来作对比)
http://blog.csdn.net/kwiner/archive/2009/04/05/4049640.aspx
分享到:
相关推荐
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...
### Shell编程小结 在IT领域,特别是操作系统与脚本编程方面,Shell占据了举足轻重的地位。Shell作为用户与操作系统之间沟通的桥梁,在UNIX和Linux系统中扮演着核心角色。本文将深入探讨Shell编程的基础知识、核心...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...
第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三章 调试...
在Shell编程中,AWK是一种强大的文本分析工具,由Alfred Aho、Peter Weinberger和Brian Kernighan三位计算机科学家的名字首字母命名。AWK提供了一种简洁的语法,使得用户可以方便地处理文本数据,包括查找模式、排序...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell ...
#### 6.4 小结 在Linux Shell编程中,使用 `&&` 和 `||` 对构造判断语句非常有用。这些运算符不仅可以提高脚本的安全性,还能增强其灵活性。通过合理运用 `()` 和 `{}`,还可以实现更加复杂和高效的命令组合逻辑。...
第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三...
#### 小结 通过以上内容的学习,可以全面了解Linux环境下Korn Shell编程的相关知识,不仅掌握了基本的编程技能,还能运用这些技能解决实际工作中遇到的问题。对于想要深入了解Linux Shell编程的人来说,《Linux ...
梁博shell脚本训练集训学习小结V0.11 在 Linux 操作系统中, shell 脚本是非常重要的一部分。shell 脚本可以帮助用户自动化repeatitive任务,提高工作效率。梁博shell脚本训练集训学习小结V0.11主要讲述了shell脚本...
#### 四、小结 通过本文的学习,读者可以了解到Linux环境下Shell编程的基本概念和常用命令,掌握了这些基本技能之后,可以在日常工作中更高效地完成各种任务。同时,对于更复杂的Shell脚本编写也有了一定的基础。...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...
通过使用引号,我们可以确保字符被当作普通文本处理,而不是特殊的Shell语法。 15.1 引用必要性 在编写脚本时,Shell会解析命令行,对变量和特殊字符进行处理。为了阻止这种解析,我们可以使用引号或反斜线(\)。不...
第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三章 调试...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...
### 小结 有效的调试策略包括仔细检查脚本本身,结合使用`set`命令和`echo`语句。通过这些方法,可以更有效地定位和修复Shell脚本中的问题,从而提高脚本的可靠性和效率。 总的来说,熟练掌握Shell脚本的调试技巧是...