私はこのスクリプトを持っていました:
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. "
とにかく、私は何でもできますか、またはオペレーティングシステムを再インストールする必要がありますか?
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
いいえ、システムを再インストールする必要はありません。/bin/shはシェルへのソフトリンクにすぎません。 readlink -f /bin/sh /bin/bash
私の場合はbashです。スクリプトを移動して、お気に入りのシェルへのソフトリンクを作成します。