誤って変更された `/ 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
@ a CVn; 私は問題が何なのかわかりませんが、spd-sayechoに置き換えてcrontabジョブを設定すると:trash>〜/ Desktop / trash.txt **、動作し、デスクトップにファイルが作成されます。別の質問でそれについて尋ねるべきだと思います。
Coditoエルゴ合計

はい、それについて質問したい場合は、別の質問として質問してください。
CVn

「私は、システムが言うのmanページを見たいと思ったときに今、: 『こんにちは、ゴミ箱を忘れてはいけない』」公平であるために、ほとんどのmanドキュメントは、(理解するのか、難しい)ゴミです
LogicalBranch

8
@LogicalBranch私は同意しません。私はそれらが大好きです。彼らは強力なオフラインガイドです。
Coditoエルゴ合計

回答:


30

Ubuntuシステムで/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/shsh:あなたはあなた自身の失敗で生きることはできませんでしたが、それはどこにあなたをもたらしましたか?私に戻って。
LogicalBranch

2
@LogicalBranchその傑作に1つの賛成票しかありませんか?
vikarjramun

4
それは傑作のように聞こえる@vikarjramunんだけど、かなりそれを得るいけない...
復活モニカ- NACHT

@Nachtそれはアベンジャーズからです:エンドゲーム。悪人、タノスからのライン。
カラブ

@Cullub Oooooh .....ありがとう...今すぐ入手できると確信しています...
モニカの復活

7

いいえ、システムを再インストールする必要はありません。/ bin / shはシェルへのソフトリンクのみです。readlink -f /bin/sh /bin/bash私の場合、bash。スクリプトを移動して、お気に入りのシェルへのソフトリンクを作成します。


10
/ bin / shは実際には/ bin / dashを指している必要があります。システムシェルを変更する場合はsudo dpkg-reconfigure dash「/ bin / shが/ bin / bashを指すようにする方法」に従って、を使用します。。また、システムシェルはデフォルトのインタラクティブシェルではありません。
wjandrea
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.