York's Blog

入门-脚本

理解脚本

JavaScript是一门动态类型,面向对象的脚本语言

脚本不是术语,就是个单词

写脚本

  1. cd ~/Desktop 先返回桌面
  2. mkdir local 创建local目录
  3. cd local 进入local目录
  4. touch demo.txt 创建demo.txt
  5. xdg-open demo.txt 打开demo.txt
  6. 写入下面的代码:

    1
    2
    3
    4
    5
    mkdir demo
    cd demo
    mkdir css js
    touch index.html css/style.css js/main.js
    exit(可加可不加)
  7. mv demo.txt demo.sh demo.txt重命名为demo.sh

  8. ls -l 列出当前目录下文件属性
  9. chmod +x demo.sh 给demo.sh加上运行权限
  10. cd ~/Desktop 返回桌面目录
  11. sh ~/local/demo.sh 运行demo.sh脚本,在桌面创建一个demo目录,里面有index.html,css和js两个目录
  12. 将~/local添加到PATH里
    1. cd ~/local; pwd 查看local目录的绝对路径
    2. vim ~/.zshrc vim打开zshrc配置文件
    3. export PATH="local的绝对地址:PATH" 在文件最后一行写入代码
    4. source ~/.zshrc 保存下配置文件
    5. demo.sh 直接可以运行脚本
    6. mv ~/local/demo.sh ~/local/demo 将demo.sh的文件后缀去掉
    7. demo 直接可以运行脚本

细节

  1. PATH 的作用:你每次在 Bash 里面输入一个命令时(比如 ls、cp、demo),Bash 都会去 PATH 列表里面寻找对应的文件,如果找到了就执行.
  2. 使用 type demo 可以看到寻找过程
  3. 使用 which demo 可以看到寻找结果
  4. 文件后缀的作用:(在命令行里)毫无作用,在Windows里面,文件后缀是打开指定的应用程序。

参数

将demo脚本里面的demo都改成$1,

1
2
3
4
5
mkdir $1
cd $1
mkdir css js
touch index.html css/style.css js/main.js
exit(可加可不加)

在命令行里运行demo xxx,可以生成一个名为xxx的目录

$1 表示你传的第一个参数。

判断目录是否存在

1
2
3
4
5
6
7
8
9
10
if [ -d $1 ]; then
echo "$1 已经存在"
exit
else
mkdir $1
cd $1
mkdir css js
touch index.html css/style.css js/main.js</li><li>
exit(可加可不加)
fi
-d $1可以判断目录是否存在

返回值

  • exit 0表示没有错误
  • exit 1表示错误代码为1
    命令行输入 demo && echo ‘结束’
    只有在demo成功是,才会执行 echo ’结束‘

Node.js 写脚本

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

  1. 我们在 Bash 命令行里输入 Bash 命令,也可以在 Node.js 命令行里输入 JS 命令(Ctrl + D 退出)
  2. Bash 脚本能做的事情,JS 脚本也能做。(sh demo.sh 对应 node demo.js)

shebang

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

  1. 然后你就可以直接用 ~/local/jsdemo.js zzz 了(省得输入 node 了)。
  2. 如果你已经把 ~/local 加入了 PATH,那么甚至可以直接输入 jsdemo.js zzz 来执行。
  3. 如果你再把 jsdemo.js 的后缀 .js 去掉,就可以直接 jsdemo zzz 了。
Proudly published with Hexo