내 PATH를 파일로 추출하여 다음과 같이 나열했습니다.
/bin
/usr/bin
/usr/local/bin
.
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin
/usr/java/default/bin
/usr/kerberos/bin
/usr/local/bin
/bin
/usr/bin
이제 이 파일에서 해당 파일을 추출하여 각 디렉터리 사이에 콜론을 사용하여 새 파일의 한 줄로 복원하고 싶습니다. 빈 파일을 받고 있는데 제가 뭘 잘못하고 있는지 보여줄 수 있나요? 다음은 파일 복원을 수행하기 위해 실행하는 명령입니다.
echo -e ${bash_list tr \\ :\n} > bash_PATH
답변1
tr
STDIN(표준 입력)에서 입력을 받습니다. 이 시도:
$ tr '\n' ':' > output_file < input_file
Bash의 매개변수 확장을 위한 구문을 사용했지만 매개변수는 가변 또는 특수 쉘 매개변수만 될 수 있으므로 올바르지 않은 매개변수로 파일을 사용하고 있습니다.
다음을 사용하여 시도 중인 작업을 수행하려면 다음을 수행하십시오 bash
.
$ var="$(<bash_list)"
$ echo "${var//$'\n'/:}" > bash_PATH
이제 bash_PATH
파일에는 다음이 포함됩니다.
/bin:/usr/bin:/usr/local/bin:.:/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin:/usr/java/default/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin
또한 "$PATH"에 중복된 디렉터리 이름이 있다는 점에 유의하세요(예를 들어 의도한 것이기를 바랍니다). 순서를 변경하지 않고 중복 항목을 제거하려면 시도해 볼 수 있습니다.이것.