shell学习笔记

文章收藏:

《shell中if条件字符串、数字比对,[[ ]]和[ ]区别》     http://www.cnblogs.com/include/archive/2011/12/09/2307905.html


1.开头 #!/bin/bash

  每行结束不加分号

2.变量

所有变量都由字符串组成,无需声明,随时赋值使用,引用时加“$”

“=”左右不能有空格

为防止与后面的字符混淆,要在被引用变量加{},如引用变量a  ${a}      注意:shell变量不能用圆括号(),makefile的可以

默认变量:

$#    传入脚本的命令行参数个数

$*     所有命令行参数值,以空格分隔

$0     命令本身(shell文件名)

$1     第1个命令行参数

$2     第2个命令行参数

$@  这个程序的所有参数 “$1″ “$2″ “$3″ “…”

局部变量:

在变量名前加local    (函数内部变量一定要加local)


3.函数

function fun1

{

    local hello="hhhhh"

     echo $hello

}

4.if语句

注意:每个if对应一个fi

if [expression]
then
     ...
else if [expression]
     then
         ...
     else
         ...
     fi     #每个if对应一个fi
fi

5.比较数字

-gt表示大于
-lt表示小于
-eq表示等于
-ne表示不等于
-ge表示大于等于
-le表示小于等于

6.比较字符串:

if [ "$test"x = "test"x ]; then
这里的关键有几点:
1 使用单个等号
2 注意到等号两边各有一个空格:这是unix shell的要求
3 注意到"$test"x最后的x,这是特意安排的,因为当$test为空的时候,上面的表达式就变成了x = testx,显然是不相等的。而如果没有这个x,表达式就会报错:[: =: unary operator expected

7.取文件名 和 取后缀

file=”thisfile.txt”
echo “filename: ${file%.*}”
echo “extension: ${file##*.}”

得到:

filename: thisfile

extension: txt


==================================  杂记篇  ==============================================

basename:剥去目录,只取文件名     如:basename  /home/jeakon/test.c   只剩下test.c

dirname:剥去文件名,只取路径部分

&& 与 || 
 command1 && command2 :其意思是 command2只有在command1 返回值为真(即返回0,成功被执行) 的条件下执行。
 command1 || command2 :    其意思是 command2只有在command1 返回值为假(非0) 的条件下执行。

set命令

只讲不带选项的set

set arg1 arg2 arg3 ...

设置该脚本的命令行参数,如上设置完之后$1=arg1,$2=arg2,$3=arg3

正则表达式:[[:space]]

为了匹配一个搜索字符串中的空格字符,我们用预定义Posix的类,[[:space]].方括号标明连续字符的相关性,”:space:”是实际要匹配的类(在这种情形下,是任何空白字符)。空白包括tab字符,新行字符,空白字符。或者,如果搜索字符串必须包含只有一个空格,而不是一个tab或者新行字符,你可以用一个空格字符(" ")。在大多数情况下,我倾向于使用":space:",因为这意味着我的意图不仅仅是单个空格字符,这点很容易被忽视。这里有一些Posix-标准预定义类, 有一些我们可以作为正则表达式的部分的一些Posix-标准预定义类,包括[:alnum:], [:digit:], [:lower:]等等。

^ 匹配一个输入或一行的开头


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习Shell命令时,以下是一些重要的注意事项和学习建议: 1. 基本语法:Shell命令通常由命令名称和参数组成。命令名称是要执行的操作,而参数则提供了命令所需的信息。了解Shell命令的基本语法是学习的第一步。 2. 命令帮助:大多数Shell都提供了内置的命令帮助功能。通过使用命令后跟`--help`或`-h`选项,或者使用`man`命令(例如`man ls`)来获取有关特定命令的详细信息。 3. 常用命令:有一些常见的Shell命令对于日常使用非常有用。这些包括`cd`(更改目录)、`ls`(列出目录内容)、`mkdir`(创建目录)、`rm`(删除文件或目录)等。逐步学习和掌握这些命令是很重要的。 4. 管道和重定向:Shell命令非常强大,可以通过管道和重定向符号将多个命令组合在一起。了解如何使用管道(`|`)将一个命令的输出作为另一个命令的输入,并使用重定向符号(`>`、`>>`、`<`)来控制输入和输出。 5. 脚本编写:Shell脚本是一种将多个命令组合在一起以自动化任务的方法。学习如何编写简单的Shell脚本可以提高工作效率。 6. 实践和练习:最重要的是进行实践和练习。尝试使用不同的Shell命令来完成各种任务,并在实际场景中应用所学知识。 记住,Shell命令的学习是一个逐步的过程。开始时可能会有些困惑,但随着实践和经验的积累,你会变得越来越熟练。希望这些提示对你有帮助!如有任何具体问题,随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值