shell学习笔记(一)

5 篇文章 0 订阅
本文介绍了Shell脚本中的核心概念,包括变量的定义与使用,如赋值技巧、单引号与双引号的区别;详细阐述了变量替换的方法,如使用反引号和$()进行命令替换;并探讨了位置参数的应用,展示了如何通过$n获取脚本或函数调用时的参数。这些基础知识对于理解和编写Shell脚本至关重要。
摘要由CSDN通过智能技术生成

shell学习笔记(一)

一、shell变量

定义:变量=值
注意:赋值的等号前后不能有空格

使用:在变量的前面加上$,推荐给所有变量加上花括号{ }

author="严长生"
echo $author
echo ${author}

单引号和双引号的区别:

  • 以单引号’ '包围变量的值时,单引号里面是什么就输出什么,即使内容中有变量和命令(命令需要反引起来)也会把它们原样输出。这种方式比较适合定义显示纯字符串的情况,即不希望解析变量、命令等的场景。
  • 以双引号" "包围变量的值时,输出时会先解析里面的变量和命令,而不是把双引号中的变量名和命令原样输出。这种方式比较适合字符串中附带有变量和命令并且想将其解析后再输出的变量定义。

二、变量的替换

  1. 使用``单引号Esc键下面那个:
variable=`commands`
  1. 使用$()
variable=$(commands)

commands 可以只有一个命令,也可以有多个命令,多个命令之间以分号;分隔。
例子:

#!/bin/bash
begin_time=`date`    #开始时间,使用``替换
sleep 20s            #休眠20秒
finish_time=$(date)  #结束时间,使用$()替换
echo "Begin time: $begin_time"
echo "Finish time: $finish_time"

三、位置参数

特殊变量$n 用来接收传递的参数,称为位置参数
场景如下:
1、执行脚本时,传递的参数
2、调用函数时传递的参数,但是shell中函数定义不能有参数

例子:

#!/bin/bash
#编写test.sh
echo "Language: $1"
echo "URL: $2"
[mozhiyan@localhost demo]$./test.sh Shell http://c.biancheng.net/shell/
Language: Shell
URL: http://c.biancheng.net/shell/

shell就是执行传递的第一个参数,http://c.biancheng.net/shell/是传递的第二个参数。

#!/bin/bash
#定义函数
function func()
{    
	echo "Language: $1"    
	echo "URL: $2"
}
#调用函数
func C++ http://c.biancheng.net/cplus/
[mozhiyan@localhost demo]$ . /test.sh
Language: C++
URL: http://c.biancheng.net/cplus/

c++就是调用函数的第一个参数, http://c.biancheng.net/cplus/是第二个参数

变量含义
$0当前脚本的文件名
$n(n≥1)传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是 $1,第二个参数是 $2
$#传递给脚本或函数的参数个数
$*传递给脚本或函数的所有参数
$@传递给脚本或函数的所有参数
$?上个命令的退出状态,或函数的返回值
$$当前 Shell 进程 ID
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值