Appearance
bash文件参数和变量
文件参数
当文件执行时,必要情况下需要在文件后面增加执行参数, 比如查询时间,分页增加每页的数量等, 下面命令是sh脚本执行start.sh并传递arg1和arg2参数
bash
sh start.sh arg1 arg2
我们使用$1表示第一个位置参数, $@ 表示所有参数, $# 代表参数个数, 下面是在start.sh中的具体内容
bash
#!/bin/bash
echo "第一个参数:$1"
echo "第二个参数:$2"
echo "所有参数:$@"
echo "参数个数:$#"
执行脚本将输出
bash
第一个参数:arg1
第二个参数:arg2
所有参数:arg1 arg2
参数个数:2
变量
- 变量的赋值
变量赋值时字符串使用单引号(')或者双引号(")引用起来, 注意, 等号(=)左右不能有空格, 有空格会被当成命令来处理
bash
start_time='2024-09-09 00:00:00'
endTime='2024-09-09 00:00:00'
perpage=20
- 变量的使用
打印开始时间
bash
echo $start_time
echo ${start_time}
这两种打印方式没什么不同,大括号防止混淆,如下
bash
hello="hello"
echo "${hello}world"
如果没有大括号,变量会变成$helloworld, 不存在. 变量需要放在双引号中,单引号没有处理变量的能力
bash
hello="hello"
echo '${hello}world'
输出 ${hello}world
bash调用脚本传参
bash脚本调用python和node脚本
js
// a.js
console.log(process.argv.slice(2));
python
# a.py
import sys
print(sys.argv)
bash
# start.sh
node a.js "$@"
python3 a.py "$@"
bash
$ bash start.sh 1 a b
# output
# [ '1', 'a', 'b' ]
# ['a.py', '1', 'a', 'b']