脚本入门相关

2026年01月20日/ 浏览 11

利用命令行和node.js写脚本文件,然后在任意一个路径下引用这个文件都能实现添加一个index.html和css文件(文件里包含style.css)和js文件(文件里包含main.js)。

1. 利用命令行创建脚本demo.sh(一下都以用户目录下的local目录为例,我们会先创建loacl):

mkdir ~/local //创建local目录

cd ~/local //进入local目录

touch demo.sh //在local目录下一个demo.sh文件

编辑demo.sh:

if [ -d $1 ]; then //固定写法判断目录是否存在 $1是第一个参数

echo 文件已经存在 //输出文件已存在

exit //退出(这里exit后面什么都不写默认是等同于exit 0意思是没有错误)

else //不存在的话执行else下面的

mkdir $1 //创建文件

cd $1 //进入文件

mkdir css js

touch index.html css/style.css js/main.js

echo success

exit //后面如果跟1的话就表示错误代码为1

fi //固定写法

按照以上写法在任意目录下运行

(Windows 用户请跳过这一步)给 demo.sh 添加执行权限 chmod +x demo.sh

在任意位置执行 sh ~/local/demo.sh xxx(文件夹名) 即可运行此脚本

cd ~/Desktop

sh ~/local/demo.sh xxx

你会看到当前目录里多出一个xxx 目录,xx 目录里面还有一些文件

好了,这个 demo.sh 就是你写出的第一个 Bash 脚本了。

将 ~/local 添加到 PATH 里

cd ~/local; pwd 得到 local 的绝对路径创建 ~/.bashrc:touch ~/.bashrc编辑 ~/.bashrc:start ~/.bashrc,在最后一行添加 export PATH="local的绝对路径:$PATH"source ~/.bashrc

之前你要运行 sh ~/local/demo.sh xxx,现在你只需要运行 demo.sh xxx就行了(想想为 什么,道理显而易见)

2. node.js写脚本

创建 ~/local/jsdemo.js,内容如下 var fs =require(fs); //这个是nodejs操作吧文件必须的一句 var dirName =process.argv[2]; //传的参数从第二个开始 0:node 1:jsdemo.js 2:zzz fs.exists(dirName,function(a){ //判断文件夹是否存在的固定写法 if(a){ //如果a(随便是什么参数都行)存在 process.exit(0); //退出 }else{ fs.mkdirSync("./"+ dirName) ; //创建一个在当前目录下的目录 process.chdir("./"+ dirName) ; //进入这个目录 fs.mkdirSync(css); //创建css目录 fs.mkdirSync(js); fs.writeFileSync("./index.html", `<!DOCTYPE> <title>Hello</title> <h1>Hi</h1>` ); //在当前目录下创建index.html文件 里面的内容为<!Docu... fs.writeFileSync("css/style.css", "h1{color: red;}");//第一个参数是文件名, 第二个是内容 fs.writeFileSync("./js/main.js", `var string = "Hello World" alert(string)` ); process.exit(0); }

2.(Windows 用户跳过这一步)给 jsdemo.js 加上执行权限 chmod +x ~/local/jsdemo.js

3. cd ~/Desktop

4. node ~/local/jsdemo.js zzz,就可以看到 zzz 目录创建成功了

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 目录,以免发生冲突。

picture loss