잘못 수정 된`/ bin / sh '


16

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

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. "

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


2
나는 추측하지만 cron 작업은 단지 몇 개의 디렉토리가있는 $ PATH를 포함하여 매우 제한된 환경에서 실행됩니다. 그것이 터미널에서 작동하지만 cron을 통해 작동하지 않는 이유 일 수 있습니다. (실제로 터미널에서 작동하지만 cron에서는 작동하지 않는 것이 가장 먼저 확인됩니다.)
CVn

1
@CVn; 문제가 무엇인지 모르지만 spd-sayecho로 바꾸고 crontab 작업을 설정하면 trash> ~ / Desktop / trash.txt **가 작동하고 파일이 데스크탑에 만들어집니다. 다른 질문으로 그것에 대해 물어봐야한다고 생각합니다.
Codito ergo sum

그렇습니다. 질문을 하시려면 별도의 질문으로하시기 바랍니다.
CVn

'나는 시스템이라는 매뉴얼 페이지를 참조 할 때 이제 ". 안녕하세요, 쓰레기통을 잊지 마세요"' 공정하게, 가장man 문서는 (이해하기 어렵거나) 쓰레기입니다
LogicalBranch

8
@LogicalBranch 동의하지 않습니다. 나는 그들을 사랑합니다. 그들은 강력한 오프라인 가이드입니다.
Codito ergo sum

답변:


30

우분투 시스템에서 기본적으로 쉘에 /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

14
OP : mv /usr/local/bin/trash /bin/sh ,sh: 당신은 당신 자신의 실패로 살 수 없었습니다. 다시 돌아와
LogicalBranch

2
@LogicalBranch 당신은 어떻게 그 걸작에 대해 단 하나의 공감을 가지고 있습니까?
vikarjramun

4
@vikarjramun 그것은 걸작처럼 들리지만 난 그냥 그것을 얻지 못한다 ...
복원 모니카

@Nacht 그것은 복수 자에서 온 것입니다 : Endgame; 악당 인 타 노스의 노선.
Cullub

@Cullub Oooooh ..... 고마워 ... 나는 지금 그것을 얻을 확신합니다 ...
복원 모니카

7

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


10
/ bin / sh는 실제로 / bin / dash를 가리켜 야합니다. 당신은 시스템 쉘 사용 변경하려면 sudo dpkg-reconfigure dash에 / 빈 / bash는 어떻게 할 수 있습니까 메이크업 / 빈 / SH 점을? . 또한 시스템 쉘은 기본 대화식 쉘이 아닙니다.
wjandrea
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.