2011-03-30 19 views
0

我正在練習一些Perl腳本,而不是每次我決定創建一個基本的Unix腳本來創建一個帶有.pl擴展名和shebang的新文件,然後輸入shebang,然後打開文件進行編輯。我試過的是:Unix腳本自動插入shebang到perl文件

alias ep "echo '#! /usr/bin/perl' >> perl/\!*.pl; emacs perl/\!*.pl;" 

但是,如果該文件不存在,則會導致錯誤。我發現這很奇怪,因爲我認爲>>會追加或創建。所以我改變了>>到>和這個工程,但只有當文件不存在。如果該文件存在,它只會崩潰並出現錯誤。我試着添加一個if語句,但是那也給了語法錯誤和不正確的錯誤。我對if的看法是:

alias ep "if [ ! -f perl/\!*.pl ] then echo '#! /usr/bin/perl' > perl/\!*.pl fi; emacs perl/\!*.pl;" 

我錯過了什麼?我不太熟悉Unix腳本,但有一個常識。

回答

1

你不想這樣做;有很多的事情要考慮的(是,如果它已經存在一個真正的perl的文件等)

你可以使用Emacs,而不是直接做

檢查了這一點:emacs skeletons and auto-insert

+0

這很好地工作,設置一個自動插入映射到emacs中的.pl文件和將腳本更改爲只添加.pl擴展名 – awestover89 2011-03-30 18:33:40

3

看起來你可能有set -C,也被稱爲set -o noclobber

您可以繼續使用重定向運算符>|或通過使用set +C取消選項來打開文件。

+0

這是確切的問題。我將保留沒有clobber選項,因爲我不想覆蓋文件,如果它已經存在,但謝謝你回答我的問題 – awestover89 2011-03-30 18:32:57