美文网首页
Shell 学习 (待更新)

Shell 学习 (待更新)

作者: 当时就吓死我了 | 来源:发表于2017-05-01 22:14 被阅读45次

    程序员应该掌握一些Linux shell脚本技能。
    以下,简单记录一些学习的内容,了解的比较浅,适用于初学者。

    shell脚本,简单理解就是可以通过执行shell文件来执行文件里的shell命令,可以用其他的编程语言编写,比如php等。

    1. 比如最简单的,我需要进入某个目录并查看其中的所有文件文件夹。
      在~(用户)目录下新建一个shell脚本文件test.sh, 用代码编辑器打开,里面的内容如下:
    #!/bin/sh
    cd /Desktop
    ls
    

    随后,直接在命令行./test.sh
    注意一定要加上./表示执行当前目录下的某文件,并且给这个文件执行权限chmod +x
    结果就是,列举出Desktop文件夹下所有的文件和文件夹。

    1. 变量、条件判断和循环的使用
      比如我想要在用户目录下创建一个目录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 用来判断文件是否存在且文件是否可执行

    基于此,你就可以实现一些基本的功能,比如自动复制,粘贴文件文件夹等小功能而不必手动敲命令。

    相关文章

      网友评论

          本文标题:Shell 学习 (待更新)

          本文链接:https://www.haomeiwen.com/subject/zfhqtxtx.html