我有这个脚本:
spd-say "Hello, don't forget the trash bin."
Run Code Online (Sandbox Code Playgroud)
所以它让我想起了我应该做什么,我把它移到/usr/local/bin/
了,命令trash
宣布了这个论点,然后我设置了一个crontab 工作,让它每天提醒我我想做什么。但是crontab不起作用,我不明白为什么(它可以完美地完成其他工作)。
一旦我在终端中看到此消息:
You have new mail in /var/mail/root
Run Code Online (Sandbox Code Playgroud)
最后这一行让我犯了一个严重的错误:
/bin/sh: 1: trash: not found
Run Code Online (Sandbox Code Playgroud)
我知道这样做很愚蠢,但我做到了:
mv /usr/local/bin/trash /bin/sh
Run Code Online (Sandbox Code Playgroud)
认为这sh
是一个目录,我应该将脚本移到那里以便执行。
现在,当我想查看手册页时,系统会说:
“你好,别忘了垃圾桶。”
的输出cat sh
是:
#!/bin/bash
spd-say "Hello, don't forget the trash bin. "
Run Code Online (Sandbox Code Playgroud)
无论如何,我可以做任何事情还是必须重新安装操作系统?
ste*_*ver 31
在 Ubuntu 系统中,默认/bin/sh
是dash
shell的符号链接:
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Jul 7 2018 /bin/sh -> dash
Run Code Online (Sandbox Code Playgroud)
因此(假设您的终端模拟器使用 bash shell,并且没有被您的错误破坏)您需要做的就是重新创建链接:
sudo ln -sf dash /bin/sh
Run Code Online (Sandbox Code Playgroud)
不,您不必重新安装系统。/bin/sh 只是到你的 shell 的软链接。readlink -f /bin/sh /bin/bash
就我而言,bash。移动您的脚本并创建一个指向您最喜欢的 shell 的软链接。