vishex ()
{
echo '#!/bin/bash' > $1;
chmod +x $1;
vi $1
}
上記の関数の目的は、bashスクリプトをすばやく快適に生成できるエイリアスを持つことです。ファイルを開くときにカーソルをShebang行ではなく下の行に置くようにしたいと思います。似たようなことを試しましたが、echo 'blabla\n', echo "blala\n", printf "blala\n"
結果はありません。
答え1
これを使用してください:
vishex ()
{
[ -e "$1" ] || echo -e '#!/bin/bash\n\n' > "$1";
chmod +x "$1";
vi "+normal G" +startinsert "$1"
}
[ -e "$1" ]
スクリプトがすでに存在することを確認してください。そうであればecho
上書きしません。-e
\n
echoでは、改行などのバックスラッシュエスケープを解釈できます。次に、shebang行の後に2つの改行を挿入します。+normal G
G
ファイルの最後の行に移動するexコマンドを実行します。+startinsert
挿入モードに直接切り替えます(質問されていないため、そのままにしておくこともできます)。
したがって、実行するとvishex script
次のようになります。
#!/bin/bash
<- cursor is here
~
[...]
~
-- INSERT -- 3,1 All
答え2
あなたの家肉実際にはウィム、マンページから:
+[num] For the first file the cursor will be positioned on line "num".
If "num" is missing, the cursor will be positioned on the last line.
したがって、以下を使用してください。
vi + "$1"