잘못 수정 된`/ bin / sh ‘ 때 : You have new mail

나는이 스크립트를 가지고 있었다 :

spd-say "Hello, don't forget the trash bin."

그래서 내가해야 할 일을 생각 나게 /usr/local/bin/하고 명령과 명령으로 옮겼습니다.trash 이 논쟁을 선언 한 다음 crontab 작업을 설정하여 매일 내가하고 싶은 일을 상기시켜줍니다. 그러나 crontab 이 작동하지 않아 이유를 이해할 수 없었습니다 (다른 작업을 완벽하게 수행함).

터미널에서이 메시지를 보았을 때 :

You have new mail in /var/mail/root

이 줄이 나에게 나쁜 실수를하게 만들었습니다.

/bin/sh: 1: trash: not found

나는 그것이 어리석은 일이라는 것을 알고 있지만 나는했다.

mv /usr/local/bin/trash /bin/sh

sh디렉토리 라고 생각하고 실행하려면 스크립트를 이동해야합니다.

이제 맨 페이지를보고 싶을 때 시스템은 다음과 같이 말합니다.

“안녕하세요, 쓰레기통을 잊지 마세요.”

그리고 출력 cat sh은 다음과 같습니다.

#!/bin/bash
spd-say "Hello, don't forget the trash bin. "

어쨌든, 내가 할 수 있습니까, 아니면 운영 체제를 다시 설치해야합니까?



답변

우분투 시스템에서 기본적으로 쉘에 /bin/sh대한 심볼릭 링크입니다 dash.

$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Jul  7  2018 /bin/sh -> dash

따라서 (터미널 에뮬레이터가 bash 쉘을 사용하고 실수로 부서지지 않았다고 가정) 링크를 다시 작성하면됩니다.

sudo ln -sf dash /bin/sh


답변

아니요, 시스템을 다시 설치할 필요는 없습니다. / bin / sh는 쉘에 대한 소프트 링크 일뿐입니다. readlink -f /bin/sh /bin/bash내 경우에는 bash. 스크립트를 이동하고 좋아하는 쉘에 대한 소프트 링크를 만드십시오.


답변