ls
출력을 bash tty 클립보드에 넣은 다음 명령 프롬프트에 붙여넣으려면 어떻게 해야 합니까 ? 또는 명령 출력을 명령 프롬프트에 직접 넣어 자유롭게 편집할 수 있는 방법은 무엇입니까?
답변1
-i
편집할 초기 입력을 제공하는 bash의 readline을 사용하여 원하는 작업을 수행할 수 있습니다 -e
. 예를 들어, 보기가 더 쉽기 때문에 date
대신 사용하세요.ls
$ read -ei "$(date)" && $REPLY
Mon Jul 25 13:42:47 CEST 2016
Mon Jul 25 13:42:47 CEST 2016
이제 표시된 대로 문자열이 표시 되고 끝에 커서가 있습니다 . 일반적인 커서 키 등을 사용하여 편집할 수 있습니다. 예를 들어 날짜를 편집 25
한 20
다음 echo
시작 부분에 를 추가하면 다음과 같이 됩니다.
echo Mon Jul 20 13:42:47 CEST 2016
Enter 키를 누르면 읽은 줄이 변수에 배치되어 REPLY
실행할 수 있습니다. 답글이 공백 등으로 구분되어 있기 때문에 이는 약간 취약합니다. 견적과 평가를 추가할 수 있습니다.
$ read -ei "$(date)" && eval "$REPLY"
그런 다음 줄을 편집하는 경우 이전과 같이 25를 변경하고 공백이 포함된 인수가 필요한 명령을 삽입합니다. 예:
date +%s -d 'Mon Jul 20 13:42:47 CEST 2016'
당신은 정답을 얻을 것이다 1469014967
. 언제나 그렇듯이 평가에는 주의하세요.
답변2
ls 출력을 bash tty 클립보드에 넣는 방법은 무엇입니까?
데스크톱 환경에서 실행하는 경우 X11 클립보드를 사용하는 것을 선호합니다.
somecommand | xclip -i
이렇게 하면 터미널 에뮬레이터를 사용하여 다른 모든 응용 프로그램에서 출력을 사용 xclip -o
하고 명령줄에 붙여 넣을 수 있습니다.
터미널 멀티플렉서 내부에서 실행 중인 경우, 예를 들어멀티플렉서또는화면, 모두 복사하여 붙여넣기를 제공합니다. 이는 서버에 있는 경우 유용합니다.
마지막으로, readline 풀탭을 조작하는 방법이 있습니다.X11/OSX 클립보드와 동기화. 장점은 Ctrl-Y
프롬프트에서 붙여넣기를 사용할 수 있다는 것입니다. 단점은 this-bash-session 전용 솔루션이라는 것입니다.
자유롭게 편집할 수 있도록 명령 출력을 명령 프롬프트에 직접 입력하려면 어떻게 해야 합니까?
명령의 출력을 다음과 같이 사용하려는 경우토론, 서브쉘 사용:
echo "ls output: $(somecommand)"
그 다음에,누르기 전에Enter
, 에 따르면 <Alt-Ctrl-e>
. 이렇게 하면 프롬프트에서 하위 쉘이 확장되어 원하는 대로 편집할 수 있습니다.
네가 원한다면실행 명령의 출력, 파일로 리디렉션하고 편집하고 실행합니다. 입력을 쉘 명령으로 해석하는 것은 매우 위험할 수 있으므로(예를 들어 비어 있는 rm -rf /$var
경우 $var
) 파일을 다시 확인하고 보관하는 것이 가장 좋습니다.
somecommand > exec.sh
$EDITOR exec.sh
bash exec.sh