zoukankan      html  css  js  c++  java
  • macOS shell 编程记

    5. 判断文件夹或目录是否存在

    # 文件夹不存在 则创建
    if [ ! -d "./data" ]
    then
        mkdir ./data
    else
        echo "文件夹已经存在"
    fi
    
    # 文件存在 则删除
    if [ ! -f "./data/1.txt" ]
    then
        echo "文件不存在"
    else
        rm -rf ./data/1.txt
    fi
    
    # 判断文件夹是否存在
    if [ -d "./data" ]
    then
        echo 文件夹存在
    else
        echo 文件夹不存在
    fi
    
    # 判断文件是否存在
    if [ -f "./data/1.txt" ]
    then
        echo 文件存在
    else
        echo 文件不存在
    fi
    

       文件比较符:

    -e filename  如果 filename 存在,则为真  [ -e filename ]
    -d filename  如果 filename 为目录,则为真  [ -d filename ]
    -f filename  如果 filename 为常规文件,则为真  [ -f filename ]
    -L filename  如果 filename 为符号链接,则为真  [ -L filename ]
    -r filename  如果 filename 可读,则为真  [ -r filename ]
    -w filename  如果 filename 可写,则为真  [ -w filename ]
    -x filename  如果 filename 可执行,则为真  [ -L filename ]
    filename1 -nt filename2  如果 filename1 比 filename2 新,则为真  [ filename1 -nt filename2 ]
    filename1 -ot filename2  如果 filename1 比 filename2 旧,则为真  [ filename1 -ot filename2 ]
    

      

    4. macOS 不支持 ll (需要使用 ls -l 实现),事实上 ll 在 linux 下是 ls -l 的快捷键。

      ls 显示当前目录下文件。

      ls -l 显示当前目录下文件详细信息。

    #以下命令均不包含".",".."目录,以及"."开头的隐藏文件,如需包含,ll 需要加上 -a参数
    #当前目录下文件个数,不包含子目录
    ll |grep "^-"|wc -l
    #当前目录下目录个数,不包含子目录
    ll |grep "^d"|wc -l
    #当前目录下文件个数,包含子目录
    ll -R|grep "^-"|wc -l
    #当前目录下目录个数,包含子目录
    ll -R|grep "^d"|wc -l
    

    3. 遍历目录

    #!/bin/bash
    function getdir(){
        for element in `ls $1`
        do  
            dir_or_file=$1"/"$element
            if [ -d $dir_or_file ]
            then 
                getdir $dir_or_file
            else
                echo $dir_or_file
            fi  
        done
    }
    root_dir="/home/test"
    getdir $root_dir
    

    2. 字符串判空有空格报错:binary operator expected

    #!/bin/bash
    
    args="na me"
    
    if [ -n $args ]
    then
        echo 'args:' $args
    else
        echo 'args is empty.'
    fi
    

    line 5: [: na: binary operator expected

    args is empty.

    解决方法:使用 [[ -n ${ARG} ]] 或 [ -n "${ARG}" ]

    1. 变量赋值"="两边不能有空格

      eg: name="name"

      引用变量  $name 或者 ${name}

    时常一个人发呆,看到宁静的天空。
  • 相关阅读:
    android界面基本属性
    iOS请求webservice
    图片在鼠标经过时变大
    控制字体大小,em与px的区别与应用
    IE的另类CSS hack,条件注释
    几种流行的AJAX框架jQuery,Mootools,Dojo,Ext JS的对比
    CSS实现文字压在边线上的效果,fieldset与legend
    每个.NET 开发人员应该下载的十个必备工具
    css做出丰富的Tooltips
    .NET牛人应该知道些什么?
  • 原文地址:https://www.cnblogs.com/pinweyshg/p/9146352.html
Copyright © 2011-2022 走看看