程序员应该掌握一些Linux shell脚本技能。
以下,简单记录一些学习的内容,了解的比较浅,适用于初学者。
shell脚本,简单理解就是可以通过执行shell文件来执行文件里的shell命令,可以用其他的编程语言编写,比如php等。
- 比如最简单的,我需要进入某个目录并查看其中的所有文件文件夹。
在~(用户)目录下新建一个shell脚本文件test.sh, 用代码编辑器打开,里面的内容如下:
#!/bin/sh
cd /Desktop
ls
随后,直接在命令行./test.sh
注意一定要加上./表示执行当前目录下的某文件,并且给这个文件执行权限chmod +x
结果就是,列举出Desktop文件夹下所有的文件和文件夹。
- 变量、条件判断和循环的使用
比如我想要在用户目录下创建一个目录shell,将桌面的一个文件里面a.txt移动到shell文件夹下并改名为a_1.txt并将它复制十份,名称为a_2.txt……a_10.txt,那么就可以写一个shell文件如下:
#!/bin/sh
#如果没有shell文件夹则创建
shellPath="/Users/sidney/shell"
if [ ! -d $shellPath ]; then
mkdir $shellPath
fi
#将目标文件移动至目标文件夹,并进入目标文件夹
mv /Users/sidney/Desktop/a.txt $shellPath
cd $shellPath
#用循环复制文件
for ((i=0; i<10; i++)); do
cp a.txt a_$i.txt
done
ok,这样就实现了我们想要的功能。
这个小例子用到了变量,条件判断,循环等内容,注意变量只有在使用时才需要加上$
符号。条件判断还可以有else或elif
部分,只需在fi(结束关键字)
之前插入else
就可以,但是 elif和if
后必须加then
关键字。
循环处,for (( ; ; ))
代表循环条件。
条件判断处,有以下几种参数:
-
-d
用来判断文件夹是否存在 -
-e
用来判断文件是否存在 -
-f
用来判断文件(普通文件)是否存在 -
-c
用来判断文件(字符型特殊文件)是否存在 -
-b
用来判断文件(块特殊文件)是否存在 -
-s
用来判断文件是否存在且至少有一个字符 -
-r
用来判断文件是否存在且文件是否可读 -
-w
用来判断文件是否存在且文件是否可写 -
-x
用来判断文件是否存在且文件是否可执行
基于此,你就可以实现一些基本的功能,比如自动复制,粘贴文件文件夹等小功能而不必手动敲命令。
网友评论