• macOS 真香与一个创建日记的脚本


    macOS 真香

    刚用 macOS 时各种不适应,用了两个星期后渐渐适应了

    macos 的一大优势就是他是类 linux 系统,可以方便的使用命令行,而命令行则是码农的最爱。

    记日记的脚本

    利用 note 命令自动创建一个日记文件,用 typora 打开,并根据当前的日期(年月日)自动将文件存放的路径下面。

    设计到的知识点:

    1. macOS 可以用 open -a xxxopen -a xxx.app 来启动 xxx.app。

      可以打开 finder -> 应用程序 ,右击指定的 app -> 名称与拓展名字,得到 app 的全名。例如 typora 的全名就是

      Typora.app

    2. typora 支持在执行时加参数

      open -a Typora.app fileName	// 用 typora 打开某个文件
      open -a Typora.app path			// 用 typora 打开某个路径
      

      除了 typora,vscode 和 goland 也支持这种用法

    3. [shell 脚本的上下文](#shell 脚本的上下文)

    4. shell 脚本

      # create_or_open_diary.sh
      cd `dirname $0`
      pwd
      
      year=$(date "+%Y")
      mouth=$(date "+%m")
      day=$(date "+%d")
      
      file_path="./$year/$mouth"
      complete_file_path="$file_path/$day.md
      
      echo $year $mouth $day
      echo $file_path
      echo $complete_file_path
      
      if [ ! -d "$file_path" ]
      then
      	mkdir -p $file_path
      fi
      
      touch $complete_file_path
      
      open -a typora $complete_file_path
      
      
    5. 为 note alias 别名

      vim ~/.zshrc
      
      alias note="bash ~/workspace/diaries/create_or_open_diary.sh"
      
      source ~/.zshrc
      

      我用的 zsh ,如果用的其他类型的 bash ,自动替换对应的 rc 文件即可

    shell 脚本的上下文

    在 /Users 路径下面建立一个 pwd.sh ,里面就一个指令,利用 pwd 来输出当前路径

    # pwd.sh
    pwd
    
    ➜  /Users bash pwd.sh
    /Users
    ➜  /Users cd /
    ➜  / bash /Users/pwd.sh
    /
    

    当在 /Users 下面执行 pwd 时,得到的结果是 /Users

    当在 / 下面执行 pwd 是,得到的结果是 /

    pwd 得到的并不是 shell 脚本所在的路径

    我希望每次执行 note 操作时,日记文件都会被记录到一个固定的路径(和 shell 脚本处于相同路径)下面,而不是随着我在执行 note 是所在的路径不同,日记文件也在飘忽不定。

    如何得到 shell 脚本的路径?
    1. dirname

      这是 linux 下的工具,可以从字符串中裁剪出路径,例如对于一个

      p1/p2/p3/p4.txt
      

      用 dirname 执行后,将得到 p1/p2/p3

    2. $0

      在执行脚本时,可以用 $0 得到执行命令的第一个参数

      /hello/arg.sh
      echo $0
      
      bash /hello/arg.sh
      /hello/arg.sh
      

    结合以上两者,就可以得到 shell 脚本的路径了。需要注意的地方是,bash 后面的参数必须时脚本的绝对路径

  • 相关阅读:
    SSM框架搭建(二) 创建MAVEN项目
    SSM框架搭建(一) JDK和MAVEN环境搭建
    Sublime Text3 手动 配置 NodeJs 环境
    spring-petclinic性能调优实战(转)
    algs4 使用 DrJava 编写 Hello World on Windows
    系统学习数据结构算法
    Algorithm 学习环境准备
    Gradle构建多模块项目
    使用 Gradle 构建 Java 项目
    Gradle目录结构详解
  • 原文地址:https://www.cnblogs.com/XiaoXiaoShuai-/p/15056059.html
Copyright © 2020-2023  润新知