初步学习了命令行的使用,现在来试试命令行的组合吧!
命令行的组合
一、使用&&
第一个命令成功才可以执行下一个命令,有一个命令不成功,就都不会成功。
eg:touch 1.txt && rm 1.txt && touch 2.txt
以上代码就是先创建1.txt,再删除1.txt,再创建2.txt。
如果运行下面的代码,那第一个命令就会出错,导致整个命令行都执行错误。
rm 1.txt && touch 1.txt && rm 2.txt
报错信息:rm: cannot remove '1.txt': No such file or directory
所以&&操作在命令之间是一条命令成功之后,才能执行下一条。
二、使用;
不管第一条命令成功与否,都执行下一条。
eg:rm 2.txt ; touch 1.txt ; rm 1.txt,这行代码是删除2.txt,创建1.txt,删除1.txt。不管删除2.txt是否成功,后面的命令都会执行。
总结:使用&&和;可以将单个命令组合起来使用,使用一行命令,实现多个操作。
那么,更进一步呢?如果我想要一个命令就处理多个操作,是写一行很长的命令行吗?有没有什么更加方便的方法?当然有,将多个命令做个一个文件里面,那么运行这个文件,就相当于执行了文件中的全部的命令。下面我们来举栗子。
创建脚本文件
第一步,先新建一个文件,名字随意,后缀也可以没有。我们这边就创建一个init(初始化)的文件,来实现一键创建index.html、style.css、main.js并初始化index.html。
使用code init,在vscode里面编辑init。在vscode中回车键可以代替分号,达成同样的效果。
保存。
第二步,添加可执行权限(Windows系统没有这个概念,默认可执行)。
使用chmod +x init为init添加可执行权限。
第三步,使用正常的路径运行init,一般使用./(当前目录)运行即可。
运行之后就会发现当前目录里面出现了三个文件,分别是index.html、style.css、main.js,并且点击index.html,会出现“初始化”的标题。
TIPS
- 添加shebang
因为我们使用的是bash命令,所以可以在代码最前面加上#!/usr/bin/env bash,如此在正确路径之后加init,也可以正常运行init。PS:测试发现加不加蛇棒,都可以运行,可能是Windows上的特别设置了。
- 将当前目录添加到PATH里面,只用文件名就可以运行