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"