簡體   English   中英

打開文件(如果存在),否則,創建一個新文件並打開它

[英]open file if it exists, otherwise, create a new one and open it

我目前已設置以下別名:

alias emacs='open -a Emacs'

但是很明顯,如果文件不存在,它將給我一個錯誤。 有沒有一種方法可以更改此別名,使其基本上說“如果文件存在,請在Emacs中將其打開,否則,請先創建文件,然后在Emacs中將其打開?”

謝謝!

使用函數而不是別名。 函數可以完成別名可以做的所有事情,甚至更多。

emacs() {
    if [ ! -f "$1" ]; then
        touch "$1"
    fi
    open -a Emacs "$1"
}

這應該適用於一個文件。 對於多個文件,您可以使用它。

emacs() {
    for file; do
        if [ ! -f "$file" ]; then
            touch "$file"
        fi
    done
    open -a Emacs "$@"
}

您可以使用--args選項為open命令考慮一個別名,如下所示:

alias emacs='open -a Emacs --args= '

然后將其稱為:

emacs $PWD/file.txt

按照每個man open

--args
     All remaining arguments are passed to the opened application in the argv parameter
     to main(). These arguments are not opened or interpreted by the open tool.

或使用以下命令創建一個名為omacs的小腳本:

#!/bin/bash
for f in $*; do if [ -f $f ]; then open -a Emacs $f; else touch $f; open -a Emacs $f; fi; done

並創建這個別名

alias emacs='omacs'

處理多個文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM