특정 명령을 수행하기 위해 단어를 지정하는 방법

특정 명령을 수행하기 위해 단어를 지정하는 방법

나는 그것에 대해 매우 새롭고 bash내가 원하는 것이 가능한지조차 모릅니다. 제가 무의식적으로 너무 많은 것을 요구해서 이것이 불가능하다면 미리 죄송합니다.

bash약간의 편집을 한 후에는 테스트 및 학습 프로세스를 위해 너무 자주 다양한 스크립트를 실행하고 있었습니다.

매분마다 전체 명령을 반복해서 입력하는 것은 정말 짜증나고 많은 시간을 낭비합니다.

예를 들어, 현재 스크립트를 실행할 때 나는 항상 다음을 입력합니다.

su -c sh /sdcard/downloads/script1.sh

어쨌든 하나를 입력하여 시작하도록 전체 명령을 할당할 수 있습니까?한 단어? 예를 들어 입력하고 싶습니다.

script1 

이것은 실제로 실행되어야합니다

su -c sh /sdcard/downloads/script1.sh 

(또는 해당 인스턴스에 대해 정의된 명령).

간단히 말해서, 단어와 해당 명령의 쌍이 많아 시간이 절약됩니다.

그리고 이것은 영구적이어야 합니다.

터미널을 닫았다가 다시 열고 지정된 단어를 입력해도 해당 정의 명령이 실행되어야 합니다.

나는 이것을 할 수 있는 방법이 있었으면 좋겠다.

답변1

~/.bashrc파일에 별칭을 만듭니다.

alias script1='su -c sh /sdcard/downloads/script1.sh'

이 별칭은 시작하는 다음 셸 세션에서 사용할 수 있습니다.

답변2

alias script1="su -c /sdcard/downloads/script1.sh && su -c /sdcard/downloads/script2.sh'. 올바르게 보입니까?

설마. 이것은 아마도 갈 길이 아닐 것입니다. 이것은 비현실적입니다. 해당 별칭과 현재 위치의 두 스크립트 모두에 대해 작동하지만 호출하는 모든 스크립트에 대해 별칭을 만들고 싶지는 않습니다. "다양한 학습 스크립트"를 언급하셨습니다.

탭 완성, 명령 기록, 경로, 별칭, 함수, 스크립트, bash 로그인( )을 구성해야 합니다 .bashrc. 많은 시간이 걸리지는 않지만 조정이 필요합니다.

참고: alias 명령 자체는 탭으로 완성 가능합니다. readline 함수는 shell-expand-line실행 전에 별칭을 확장할 수 있습니다. 즉, scri<tab><M-C-e>전체 줄을 가져오므로 Enter를 누르기 전에 편집할 수 있습니다. 무엇이 가능한지 보여주기 위해서입니다.

특수 명령을 반복하려면 명령 기록을 사용하는 것이 좋습니다. 일반 스크립트를 실행하려면 별칭, 경로, 함수 및 기타 스크립트와 같은 셸 기능을 사용할 수 있습니다.

관련 정보