使用 `touch` 命令识别文件类型并自动生成 shebang?
Using `touch` command, recognize file type and auto-generate shebang?
这样的文本编辑器
但是,我想知道是否可以使用 touch
命令从终端执行此操作。
例如,我想为我刚从终端创建的 Python 脚本自动生成 shebang,如下所示:
$ touch test.py # create file and auto-generate
$ cat test.py # see the contents to confirm
#!/usr/bin/env python
# -*- coding: utf-8 -*-
我知道我可以在我的环境中创建一堆自动生成的文本变量,例如 PY_SHEBANG="#\!/usr/bin/env python\n# -*- coding: utf-8 -*-"
然后执行:
$ echo $PY_SHEBANG > file.py
但是一想到要经历这么多麻烦,我的脑袋就乱了。
也就是说:有什么方法可以配置 terminal/shell 以便它可以识别我正在创建的文件的文件类型,并根据文件类型自动向其附加文本, 使用单个 touch
命令?
注意:我正在使用 zsh 和 oh-my-zsh。
当然可以。只需使用别名并将 touch
替换为我们自己编写的函数。但是我建议使用别名 etouch
(增强触摸),所以如果您决定正常使用 touch
命令,您可以。
由于您使用的是 zsh,它使事情变得更加简单(但我想 bash 会类似)在您的 .zshrc
(或 .bashrc
,我不知道),编写一个函数来检查文件类型并输入任何内容,如下所示:
# function for auto-generating shebang
function enhanced_touch () {
if [ -f ]; then
echo " already exists"
return 0
fi
if [[ $(echo -n "" | tail -c 3) == ".py" ]]; then
echo "#!/usr/bin/env python\n# -*- coding: utf-8 -*-" >
else
touch
fi
}
alias etouch="enhanced_touch"
显然,我只是按照您的要求定制了识别python个文件的功能。但是我会把其他文件类型留给你写。
还有,别忘了source .zshrc
。祝你好运!
但是,我想知道是否可以使用 touch
命令从终端执行此操作。
例如,我想为我刚从终端创建的 Python 脚本自动生成 shebang,如下所示:
$ touch test.py # create file and auto-generate
$ cat test.py # see the contents to confirm
#!/usr/bin/env python
# -*- coding: utf-8 -*-
我知道我可以在我的环境中创建一堆自动生成的文本变量,例如 PY_SHEBANG="#\!/usr/bin/env python\n# -*- coding: utf-8 -*-"
然后执行:
$ echo $PY_SHEBANG > file.py
但是一想到要经历这么多麻烦,我的脑袋就乱了。
也就是说:有什么方法可以配置 terminal/shell 以便它可以识别我正在创建的文件的文件类型,并根据文件类型自动向其附加文本, 使用单个 touch
命令?
注意:我正在使用 zsh 和 oh-my-zsh。
当然可以。只需使用别名并将 touch
替换为我们自己编写的函数。但是我建议使用别名 etouch
(增强触摸),所以如果您决定正常使用 touch
命令,您可以。
由于您使用的是 zsh,它使事情变得更加简单(但我想 bash 会类似)在您的 .zshrc
(或 .bashrc
,我不知道),编写一个函数来检查文件类型并输入任何内容,如下所示:
# function for auto-generating shebang
function enhanced_touch () {
if [ -f ]; then
echo " already exists"
return 0
fi
if [[ $(echo -n "" | tail -c 3) == ".py" ]]; then
echo "#!/usr/bin/env python\n# -*- coding: utf-8 -*-" >
else
touch
fi
}
alias etouch="enhanced_touch"
显然,我只是按照您的要求定制了识别python个文件的功能。但是我会把其他文件类型留给你写。
还有,别忘了source .zshrc
。祝你好运!