**脚本(有git上传模板)

前言

其实脚本原本来自戏剧舞台,比如下面这个脚本:

公馆一室内
王妈:(小心翼翼地)小姐,您还是得注意身子,就吃点东西吧。
鸡小姐:(把碗砸在地上)不吃,我就是不吃。
(王妈下)

脚本主要由人物对话和舞台提示组成。演员和道具组只需要按照脚本说的做即可。

编程领域的脚本也是类似的,计算机只要照着脚本上说的做即可,比如下面这个脚本:

cd ~/Desktop
mkdir demo
cd demo
echo "hi" > index.html
cd ~/Desktop


所以说,脚本就是给计算机照着做的。这是我们对「脚本」的一个感性认识。

例子
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

非windows系统还要加上chmod +x filename 修改权限

几个命令

PATH 的作用
你每次在 Bash 里面输入一个命令时(比如 ls、cp、demo),Bash 都会去 PATH 列表里面寻找对应的文件,如果找到了就执行。(所有命令都是脚本文件而已!linux里面可执行 文件皆命令,不可执行文件就是配置!)
使用 type demo 可以看到寻找过程
使用 which demo 可以看到寻找结果
文件后缀的作用:毫无作用
你以为一个文件以 .exe 结尾就一定可以双击吗?你以为一个文件以 .png 结尾就一定是图片吗?图样图森破!

创建任意目录的脚本

在这里插入图片描述

mkdir $1
cd $1
mkdir css js
touch index.html css/style.css js/main.js
exit

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

注意MAC 和Linux(以及windows)有不一样的地方,执行文件需要加./

在这里插入图片描述

原理讲解

在这里插入图片描述

在这里插入图片描述

上面的 $1为第一个参数

判断目录是否存在
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

if [ -d $1 ] ; then 
    echo "$1 已经存在了 " 
    exit
else 
    mkdir $1 
    cd $1  
    mkdir css js 
    touch index.html css/style.css js/main.js 
    echo 'success'
    exit
fi

Node.js写脚本(ctrl +D 退出)
上面我们写的脚本叫做 Bash Script(Bash脚本)。

JS 的全称叫做 JavaScript(Java脚本),虽然 JS 和 Java 没什么关系,但是 JS 依然是一种脚本。

我们在 Bash 命令行里输入 Bash 命令,也可以在 Node.js 命令行里输入 JS 命令(Ctrl + D 退出)
Bash 脚本能做的事情,JS 脚本也能做。(sh demo.sh 对应 node demo.js
进入js命令行:(ctrl +D 退出)(其语法与bash完全不一样)
在这里插入图片描述

js里面的显示当前目录与切换目录
process.cwd()<------->pwd(bash里面的)
在这里插入图片描述

process.chdir("/Users/frank/Desktop")

js里面的print

console.log(1)<-------->echo 1


js里面的建立目录

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

bash命令行和Node.js命令行实质上是一样的,只不过语法格式不一样!

Node.js文档见下:
https://nodejs.org/api/fs.html#fs_fs_mkdirsync_path_mode

js里面读写

在这里插入图片描述

Node.js脚本

在这里插入图片描述

在这里插入图片描述

一般默认皆是用bash来执行的,故这里要添加一个node
在这里插入图片描述

shebang

我们每次执行 ~/local/jsdemo.js 都要用 node 来执行,能不能做到不加 node 也能执行呢(也就是指定执行环境),可以,在 jsdemo.js 第一行加上这一句即可:

#!/usr/bin/env node

(以下操作在 Windows 上可能失败,失败了就算了)

然后你就可以直接用 ~/local/jsdemo.js zzz 了(省得输入 node 了)。
如果你已经把 ~/local 加入了 PATH,那么甚至可以直接输入 jsdemo.js zzz 来执行。
如果你再把 jsdemo.js 的后缀 .js 去掉,就可以直接 jsdemo zzz 了。
注意,你每次执行前最好删掉 zzz 目录,以免发生冲突。

总结

脚本就是给机器一行一行执行的文本
Bash 脚本有 Bash 脚本的语法,Node.js 脚本有 JS 语法
不管是那种脚本,能实现的功能都差不多,只是语法不同
Bash 脚本的语法挺奇葩的,比如 # 等符号
不用特别去学 Bash 脚本的用法,遇到不会的就 Google
不用特别去学 Node.js 脚本的用法,遇到不会的就 Google
新人写代码最大的问题就是「抄错了」
多写了一个空格
少写了一个空格
单词拼错了
没有加分号
多加了分号

作业题(重点有上传github模板)

事先把demo.sh这个脚本写好,而后copy进homework这个目录下面;
在这里插入图片描述

echo "# homework" >> README.md
git init
git add README.md
git commit -m "first  homework"
git remote add origin git@github.com:richard1230/homework.git
git push -u origin master

git add demo.sh
git commit -m "commit homework"
git push -u origin master

在这里插入图片描述

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值