다음 태스크를 수행하려고합니다. 이라는 쉘 스크립트를 작성합니다. 은 디렉토리 이름, 명령 이름 및 선택적으로 추가 인수를 사용합니다. 그러면 스크립트가 표시된 디렉토리로 변경되고 은 제공된 인수와 함께 표시된 명령을 실행합니다. 여기에 예를 bash 스크립트를 사용하여 디렉토리를 변경하고 인수를 사용하여 명령을 실행하십시오.
:$ sh changedir /etc ls -al
이것은 /etc
디렉토리로 변경하고 명령 ls -al
을 실행해야합니다.
지금까지 내가 가진 :
#!/bin/sh
directory=$1; shift
command=$1; shift
args=$1; shift
cd $directory
$command
나는 그것을 변경하고 디렉토리를 나열하는 위의 같은 sh changedir /etc ls
를 실행합니다. 하지만 인수를 ls
에 추가하면 작동하지 않습니다. 문제를 해결하려면 무엇을해야합니까?
당신에게 찰스 감사 내가 .... : 당신은 '변화'를 ommited 경우
코드는 훨씬 더 읽을 것 위의 마지막 줄을 "$ cmd" "$ @"로 지정하여 명령에 선택적으로 "인수"를 만들 수 있습니다. 즉, "./changedir/etc/ls"를 실행하면 ok 및 "./indir"/etc/ls -al "도 작동합니다. – frodo
@frodo : 네, 맞습니다. ''$ @ ''는 전달 될 때 인자를 보존하기 때문에 더 낫다. 그것은 내가 의미 한 것이지만 쓴 것은 아닙니다! –