Shell 和 Shell 脚本 (Shell Script)
Shell 是一个用 C 语言编写的程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
openg shader
业界所说的 Shell 通常都是指 Shell 脚本,但要知道,Shell 和 Shell Script 是两个不同的概念。
ios
Shell 脚本种类众多,常见的有:
ConcurrenMap
- Bourne Shell(/usr/bin/sh或/bin/sh)
- Bourne Again Shell(/bin/bash)
- C Shell(/usr/bin/csh)
- K Shell(/usr/bin/ksh)
- Shell for Root(/sbin/sh)
除了上面的几种,Node.js 本质上也是一种 Shell 脚本,只不过他的语法是 JavaScript。不同 Shell 脚本的区别就是语法不一样。
RNN
总结:我们通过编写 Shell 脚本,然后放在 Shell 应用程序里面运行,常见的 Shell 应用程序有 Cmd、git Bash 等等。常见的Shell 脚本有 Bash、Node。
麦克风权限
不同的 Shell 脚本需要不同的 Shell 应用程序来执行,默认 Shell 应用程序都是执行 Bash 脚本的,如果需要切换 Node 脚本的执行环境,我们需要安装 Node,配置完成环境变量后,输入node
即可切换 Node 脚本的执行环境中。
应用开发
Shell 脚本 – Bash
Bash 是大多数 Linux 系统默认的 Shell 脚本。
ios解锁大师
IC设计
armbian
Linux系统目录结构
简历
列表
目录文字说明
篮球小程序
mkdir demo
cd demo
mkdir css js
touch index.html css/style.css js/main.js
exit
脚本执行的原理(Bash 脚本)
你每次在 Shell 应用程序 里面输入一个命令时(比如 ls、cp、demo),Bash 都会去 PATH 列表里面寻找对应的文件,如果找到了就执行。
苹果ios解锁大师
当我们自己写的脚本不在 PATH 列表里面应该怎么执行呢?比如我们写了一个名为 demo 的脚本。
JS从入门到进阶
第一种
yolov5 deepsort
cd demo 脚本的目录
./demo
第二种
状态
脚本目录/demo
注意:如果我们直接在 Bash 里面输入 demo 的话,会发现执行不了,因为 demo 这个脚本不在 PATH 列表里。
vite2
查看脚本所在的 PATH
apifox
使用 type ls
可以看到寻找过程(在 Win 系统下好像没啥用)
区块链浏览器
使用 which ls
可以看到寻找结果
方法
Shell 脚本 – Node
我们在 Bash 执行环境里输入 Bash 脚本,也可以在 Node 执行环境里输入 Node 脚本。
security
Bash 脚本能做的事情,JS 脚本也能做。(sh demo.sh 对应 node demo.js)
转换值
xml
查看当前目录
QT样式
process.cwd();
创建目录
json
var fs = require('fs')
fs.mkdirSync("./demo")
创建文件
var fs = require('fs')
fs.writeFileSync("./demo.txt","123")
脚本后缀
作用:毫无作用。
Linux 中的文件是通过敲命令来执行的,可以用vi demo
通过 vi 来打开,也可以通过sh demo
当做脚本来执行,默认是 sh
文末放一个案列:列如我写的一个脚本控制tcl tv压测netflix转dtv后blank screen
while true;
do
input keyevent 25 #声音降低
input keyevent 25
input keyevent 25
echo 02f6 > /sys/venus_ir/ir_gen_keycode #打开netflix
sleep 2
echo 0x1c > /sys/venus_ir/ir_gen_keycode #确认片源
sleep 1
echo 0x1c > /sys/venus_ir/ir_gen_keycode #确认播放
sleep 3
input keyevent 24 #声音升高
input keyevent 24
input keyevent 24
sleep 1
echo 01d7 > /sys/venus_ir/ir_gen_keycode #切换tv
sleep 2
input keyevent 22 #左键
sleep 1
echo 0x1c > /sys/venus_ir/ir_gen_keycode #确认切换到dtv
sleep 10
echo 0x66 > /sys/venus_ir/ir_gen_keycode #返回主页
sleep 1
done
获取键值方法一
控制键值
获取:dmesg -c |grep IR
[ 2723.097758] 11:18:35.995 (3)-0000\x09[IR] [DBG] roger venus_ir_input_report_end_TCL keycode=0x6c
[ 2723.097774] 11:18:35.995 (3)-0000\x09[IR] [DBG] roger venus_ir_input_report_end_TCL keycode=0x6c up
实现:echo 0x6c > /sys/venus_ir/ir_gen_keycode
获取键值方法二
获取键值getevent
add device 1: /dev/input/event2
name: "virtual-search"
could not get driver version for /dev/input/js0, Invalid argument
add device 2: /dev/input/event1
name: "rtk_keypad"
add device 3: /dev/input/event0
name: "mtkinp"
/dev/input/event0: 0001 0192 00000001
/dev/input/event0: 0000 0000 00000000