Shell脚本基础,管道,重定向,Shell变量

Linux并不用文件名的后缀来区分文件格式,但是习惯上我们还是用".sh"来表示一个shell脚本文件
刚刚写完的一个shell脚本程序通常是没有执行权限的,需要手动$chmod +x filename.sh来添加可执行权限

开头

任何一个shell脚本程序都必须在开头用#!标识使用的shell程序,如果用的是bash,那就是#!/bin/sh

注释

shell脚本一行中的#之后的部分为注释

管道

管道是管理Linux十分有用的工具,它可以把前一个命令的结果直接传递给后一个命令
$grep "test" file1.txt | wc -l

重定向

所谓重定向即将输入输出从标准的输入输出重定向到其他位置,比如从文件输入或输出到文件
> 如果文件不存在就创建文件并将内容写入,如果文件存在就把文件清空再写入内容
>>如果文件不存在就创建文件并将内容写入,如果文件存在就在原文件后面写入内容
$echo "this is echo" > echo_content.txt

定义变量

shell脚本的变量在使用前不需要"声明",什么时候用,就什么时候定义
shell脚本的变量也不区分整型、浮点型etc,所有的变量在解释器看来都是字符串
shell脚本的字符串可以使用" "也可以使用' '
有Python经验的程序员可能会在运算符的前后大量的使用[空格]来使程序更加整齐,但是shell里不能这样,因为解释器会把[空格]也看做变量名的一部分,导致程序出错

var="Hello Shell"
cur_ver=1.1

使用变量

shell用$来取一个变量的值,如果有歧义,可以使用{}来对变量进行标识

echo $var 
echo $variable     #解释器会去寻找**variable**这个变量,但这个变量是不存在的,没有值
echo ${var}iable    
echo $cur_ver

输出的结果

相关推荐