답변:
로 (t)csh
, bash
또는 zsh
역사 확장 당신은 할 수 쓰기 :
vagrant up && !#:0 ssh
그러나 진지하게, 당신은하지 않을 것입니다
!#:0
의미 를 설명해 주시겠습니까? 0을 1, 2 또는 다른 숫자로 바꾸면 무엇을 의미합니까?
!#
현재 입력하는 라인을 의미하며, :0
선 ( "방랑")의 첫 번째 단어입니다. 그래서 !#:1
"최대"등이 될 것입니다
v=vagrant; $v up && $v ssh
그것은 당신이 찾고있는 것에 가깝습니다.
다음 bash
은 현재 복합 명령의 명령 위치에서 첫 번째 단어를 인쇄 하는 기능입니다 .
rc() { $(set -f; unset IFS
set -- $(history 1)
IFS="(){};|'\\\"&#"
set \ $2;IFS=\ ;set -- $*
printf %s "$1") "$@"; }
그것으로 당신은 할 수 있습니다 :
vagrant up && rc ssh
예를 들면 :
echo up && rc ssh
up
ssh
또는...
set -x
(echo);rc 'times two'
+ echo
+ rc 'times two'
++ set -f
++ unset IFS
+++ history 1
++ set -- 549 '(echo);rc' ''\''times' 'two'\'''
++ IFS='(){};|'\''\"&#'
++ set ' ' echo '' rc
++ IFS=' '
++ set -- echo rc
++ printf %s echo
+ echo 'times two'
times two