나는이 스크립트를 가지고 있었다 :
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. 스크립트를 이동하고 좋아하는 쉘에 대한 소프트 링크를 만드십시오.