我们要学会用工具解放双手,比如批量给文件夹下某些文件建立软链接,我们可以写个脚本实现。下面记录这个工程中用到的一些命令。
变量
定义变量时,变量名不加美元符号
your_name="12"
使用变量
使用一个定义过的变量,只要在变量名前面加美元符号即可
your_name="qinjx"
echo $your_name
echo ${your_name}
变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界
获取某目录下文件夹/文件的名称
- 如果是需要深度遍历,即输出文件夹已经文件夹里的文件/文件夹,命令如下
#!/bin/bash
cd 目标目录
for file in $(ls *)
do
echo $file
done
- 如果只想获取第一层的文件已经文件夹,则如下
#!/bin/bash
cd 目标目录
for file in $(ls )
do
echo $file
done
文件夹和文件的判断
首先判断的语法是if [ condition ]
两个命令:
- -f "file":判断file是否是文件;
- -d "file":判断file是否是目录(文件夹)。
结合获取文件/夹的语法,比如判断是否为文件夹可以这么写
#!/bin/bash
cd 目标目录
for file in $(ls )
do
if [ -d "$file" ]; then
echo "$file is a directory "
elif [ -f "$file" ]; then
echo "$file is a file"
fi
done
数组是否包含某个值
我们知道 javascript 包含可以直接使用 [].includes('xxx')
。 用 shell可以这么写:
if [[ " ${array[@]} " =~ " ${value} " ]]; then
echo true
fi
if [[ ! " ${array[@]} " =~ " ${value} " ]]; then
echo false
fi
流程控制
if 语句
if condition
then
command1
command2
...
commandN
fi
if else
if condition
then
command1
command2
else
command
fi
if else-if else
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
获取某个文件的绝对路径
- 获取文件的绝对路径可以使用
$(pwd)
- 如果想要获取一个相对文件的绝对路径,可以这样写
$(cd ${basePath}; pwd)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。