linux shell脚本攻略笔记,《linux shell 脚本攻略》笔记1

引用自《linux shell脚本攻略》

### echo

不加引号和使用单引号都是原样输出,不加引号时分号被认为是命令结束,

单引号中无法输出单引号

echo -n #不换行输出

echo -e "1\t2" #使用转义字符时-e参数

echo -e "\e[31m hello" #使用红色文字显示hello,\e[0m重置回默认颜色,30开始文字颜色,40开始背景颜色

stty -echo #输入不显示在终端

stty echo #输入显示在终端

变量

a=55 #定义变量并赋值,不加空格,加空格为比较,a="hello boy"

c=$(date) #将命令赋值给c,使用$加括号

c=`命令` #同上

$( ) #命令,或者反引号(ESC下)

$[ ] #算术运算,或let

${ } #使用变量,${ 变量 }同$变量

${# } #获得变量长度 echo ${#5}

$? #命令执行状态,0成功,其他错误

$0 #返回当前shell

$1 $2... #第一个参数,第二个参数...

$@ #传入脚本的所有参数,同$*

$! #上一个后台进程的PID

输入重定向

> #标准输出(正确执行到结果)重定向(原本显示在终端等位置),覆盖到指定位置

>> #标准输出重定向,追加到指定位置

1> #等同于>,1可省略

2> #错误信息(出错信息)重定向,覆盖到指定位置

2>&1 #标准输出与错误输出均重定向到同一位置(全部执行结果)

>/dev/null #丢弃正确执行结果

>/dev/null 2>&1 #丢弃所有执行结果

命令 >a.txt 2>&1 #命令全部执行结果输入到a.txt,等于:命令 >& a.txt

date | tee a.txt | grep .. #执行date命令的输出保存在a.txt,并继续传递数据给后方的grep,作 #为grep的输入,tee只保存标准输出1,并且以覆盖的方式,追加用-a参数

输出重定向

命令 < a.txt #从a.txt读取数据作为命令的输入,等同于:命令 0

命令 <

数据 #EOF可以替换为其他单词

EOF

数组

普通数组

a = (1 2 3 4 5) #定义整型数组,每个元素空格隔开 echo ${a[0]}

a=(abc def "ni hao") #定义字符串数组

b [0] = "hi" #引号内仅能包含一个元素,括号可以多个元素

b [1] = "ha ha ha" #定义字符串数组

echo ${a[0]} #输出第0个元素

echo ${a[]} #显示数组中的所有值,也可以用@代替

echo ${#a[*]} #显示数组长度`

关联数组

declare -A fruits_value #定义一个关联数组,数组名fruits_value

fruits_value = ( [apple] = '5 yuan' [ orange] = '4 yuan' ) #索引,字符串,空格隔开

echo "apple is ${ fruits_value[apple] }" #输出索引apple的

echo ${!fruits_value[*]} #输出数组全部的元素,比普通数组多一个!号,在数组名之前

时间

date #显示当前日期

date +%a #星期

date +%y #年

date +%b #月

date +%d #日

date +%H #时

date +%M #分

date +%S #秒

date +%s #距标准时间的秒数

判断

if [ a -lt b] #lt小于,eq等于也可用=或==。gt大于,le小于等于,ge大于等于,ne不等于

then

echo a

else

echo a>b

fi

循环

for a in `seq 0 40 ` #a从零计数到40

do

echo -n $a

done

算数运算

let c=a+b 或 c=$[a+b] 或c=$((a+b)) 或 c='expr $a + $b' 或c=$(expr $a + $b) #只能用于整数

let a++ 或 let a+=1

字符转换

tr

终端

stty -echo #不将输入的内容显示在终端,用于读取密码

stty echo #取消以上

从网页获取壁纸

#!/bin/bash

###输入起始页和末页,空格隔开

read start end

for((i=$start;i<=$end;i++))

do

curl http://wallpaperswide.com/page/${i} |grep prevframe_show | cut -d"/" -f5 |cut -d. -f1 |while read wall_url

do

sudo axel -c -a -o /usr/share/backgrounds http://wallpaperswide.com/download/$wall_url-wallpaper-1366x768.jpg

done

done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值