명령줄에서 $ 매개변수를 사용하고 끝에 값을 제공합니다.

명령줄에서 $ 매개변수를 사용하고 끝에 값을 제공합니다.

실행해야 하는 모든 프로세스를 스크립팅하는 것보다 명령을 텍스트 파일에 저장한 다음 복사하여 명령줄에 붙여넣는 것을 선호합니다. 물론 명령을 붙여넣고 실행할 때마다 명령의 일부 세부 사항이 변경됩니다. 그런 다음 명령 화살표를 통해 중요한 부분을 변경해야 합니다. 그래서 저는 이런 일을 하고 싶습니다.

간단한 예를 들어보세요:

chmod $1 /home/$2/.bashrc 740 bobsa

이를 수행할 수 있는 방법이 있습니까? xargs이 작업을 수행하는 데 사용할 수 있는 것이 있나요 ? 이를 달성하기 위해 명령을 실행하기 전에 변수를 설정할 수 있다는 것을 알고 있지만 ENV다른 측면에서 마침내 완료할 수 있기를 바랍니다. 감사합니다!

답변1

자주 사용하는 명령이 있는 경우 이를 함수로 작성하고 셸의 시작 파일에 저장합니다 .bashrc. 예를 들어 다음과 같이 정의할 수 있습니다(더 나은 이름을 원할 수도 있음).

f() {
    chmod "$1" "/home/$2/.bashrc"
}

그리고 전화했다

f 740 bobsa

명령줄에서 명령을 자주 편집해야 하는 경우 이는 그다지 효율적이지 않습니다. 하지만 그런 경우에도 동일한 명령줄에 함수 정의를 넣고 즉시 실행할 수 있습니다.

f() { chmod "$1" "/home/$2/.bashrc"; }; f 740 bobsa

공백과 세미콜론이 필요 {}하지만 공백과 세미콜론을 사용할 수도 있습니다 (). 그들은 서브쉘을 시작하지만 아마도 마음에 들지 않을 것입니다.

f() (chmod "$1" "/home/$2/.bashrc"); f 740 bobsa

답변2

다음과 같은 플래그와 함께 bash명령을 사용할 수 있습니다 -c.

bash -c 'chmod "$1" /home/"$2"/.bashrc' bash 740 bobsa

Bash 명령에는 작은따옴표를 사용해야 합니다.

관련 정보