换行符 \n

echo -n 禁止换行

环境变量声明export

export PATH="$PATH:/home/user/bin"

获取字符串的长度

length=${#var}

shell数学运算

let [] (()) expr

注:使用let时,变量名之前不需要$

标准输入stdin--0

标准输出stdout--1

标准错误stderr--2

读取命令返回值$? #错误并退回为非0,成功完成为0

重定向

cmd 2>stderr.txt 1>stdout.txt     #分别重定向到不同文件
cmd 2>&1 alloutput.txt #1、2输出到同一文件
cmd &> output.txt #1、2输出到同一文件

/dev/null 黑洞,丢弃接收到的任何数据

cat<<EOF>log.txt
添加的内容 #新增至文件log.txt顶部
EOF

别名alias(默认临时,关闭终端则失效)

alias rm="cp $@ ~/backup && rm $@"    #创建别名
echo ''alias cmd="command seq"' >> ~/.bashrc #创建永久的
unalias / alias cmd= #取消别名

time CommandOrScriptName #计算命令花费时间

sleep 30 #延迟脚本执行30s

bash -x script.sh #使用x,启用脚本跟踪调试功能

_DEBUG=on ./script.sh #调用bash内置函数,启用调试功能

$@以列表的方式一次性打印所有参数,"$1" "$2" "$3"

$*所有参数视为单个实体, "$1$2$3"

read -p "input the num:" num        #两种方式一致
echo -n "input the num:"
read num
read -t 10 -p "input the num:" num #计时10s输入
read -s -p "input the num:" num #默读,输出不显示

shell脚本攻略1的更多相关文章

  1. Linux Shell脚本攻略 读书笔记

    Linux Shell脚本攻略 读书笔记 这是一本小书,总共253页,但内容却很丰富,书中的示例小巧而实用,对我这样总是在shell门前徘徊的人来说真是如获至宝:最有价值的当属文本处理,对这块我单独整 ...

  2. Linux shell 脚本攻略之统计文件的行数、单词数和字符数

    摘自:<Linux shell 脚本攻略>

  3. Linux shell 脚本攻略之创建不可修改文件

    摘自:<Linux shell 脚本攻略>

  4. Linux shell 脚本攻略之生成任意大小的文件

    摘自:<Linux shell 脚本攻略>

  5. Linux shell 脚本攻略之批量重命名

    摘自:<Linux shell 脚本攻略>

  6. Linux shell 脚本攻略之文件查找与文件列表

    摘自:<Linux shell 脚本攻略>

  7. Linux shell 脚本攻略之比较与测试

    摘自:<Linux shell 脚本攻略>Page30-33

  8. Linux shell 脚本攻略之根据扩展名切分文件名

    摘自:<Linux shell 脚本攻略>Page61-62  

  9. Linux shell 脚本攻略之正则表达式入门

    摘自:<Linux shell 脚本攻略> 下面是类似的解释:

  10. Linux Shell脚本攻略

    -Linux Shell脚本攻略 总结的来说,这本书很实践性和实用性强,都是给的具体的例子,直接可以在终端操作实践,比单纯只看不动手务实多了,另外就是,这本书涵盖的内容也比较广,从文本操作到服务器管理 ...

随机推荐

  1. elasticsearch容量规划

    https://docs.bonsai.io/article/123-capacity-planning Capacity Planning Capacity planning is the proc ...

  2. .net core 使用本地包

    环境:.net core 2.2 类库:.Net  Standard 2.0 旧版本:   发布你自己的Nuget包 如果不想把包发布到nuget上面供别人引用,然后你有没有服务器,我们只能使用本地包 ...

  3. LongAdder源码分析

    AtomicLong是作用是对长整形进行原子操作,显而易见,在java1.8中新加入了一个新的原子类LongAdder,该类也可以保证Long类型操作的原子性,相对于AtomicLong,LongAd ...

  4. C# 杀掉系统中的进程

    杀掉系统进程之前首先要知道进程名称(说了句废话),这里要注意在任务管理器中的进程名称不一定是真实的名称.打个比方,我们开启一个"记事本",任务管理器中进程名称为"记事本& ...

  5. 类的练习3——python编程从入门到实践

    9-13 使用OrderedDict: 在练习6-4中,使用一个标准字典来表示词汇表.使用OrderedDict类来重写这个程序,并确认输出的顺序与在字典中添加的键值对的顺序一致. from coll ...

  6. my first blog by cnblogs

    #include <stdio.h> int main() { printf("hello everyone."); ; } 上面为我的第一个C语言测试代码,仅供初学者 ...

  7. hystrix完成对redis访问的资源隔离

    相对来说,考虑的比较完善的一套方案,分为事前,事中,事后三个层次去思考怎么来应对缓存雪崩的场景 1.事前解决方案 发生缓存雪崩之前,事情之前,怎么去避免redis彻底挂掉 redis本身的高可用性,复 ...

  8. 总结:WPF中模板需要绑定父级别的ViewModel该如何处理

    原文:总结:WPF中模板需要绑定父级别的ViewModel该如何处理 <ListBox ItemsSource="{Binding ClassCollection}"> ...

  9. C# 进程 与 线程

    C#多线程和线程池1.0.线程的和进程的关系以及优缺点windows系统是一个多线程的操作系统.一个程序至少有一个进程,一个进程至少有一个线程.进程是线程的容器,一个C#客户端程序开始于一个单独的线程 ...

  10. JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删改查),事件

    JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删 ...