两个命令合二为一

两个命令合二为一

.sh通常,我会在使用中创建一个文件touch file.sh,然后使用编辑器修改脚本sudo emacs file.sh。有没有办法同时做到这一点?我的意思是创建文件后.sh ,然后立即打开编辑器。

答案1

sudo emacs file.sh(一开始)不会在文件系统上创建文件。

emacs打开缓冲区并在其上工作,因此除非您以通常的方式保存(如C-sis emacs),否则文件不会保存在文件系统中。使用 打开缓冲区后sudo emacs file.sh(假设文件尚不存在),如果您使用 关闭缓冲区,C-x-c则不会保存/创建文件。

请注意,要创建一个空文件,一种方法是利用带有虚拟输入的 shell 重定向(例如true:)),bash甚至支持空重定向:

: >file.sh
>file.sh ## In bash

请注意,file.sh如果文件已存在,它将被截断,为防止这种情况发生,您可以设置选项noclobber,如果文件已存在,它将阻止截断:

set -o noclobber

答案2

命令将在缓冲区中sudo emacs file.sh打开。 仅当文件不存在时才会创建,并且内容会被保存。file.shfile.shC-s

您还可以使用任何其他文本编辑器nano,如vim或。geditsudo nano file.sh

答案3

sudo touch file.sh && sudo emacs file.sh

&&命令串在一起,执行第一个命令,然后执行第二个命令假设第一个命令成功

相关内容