我在minix上创建了一个回收站的脚本。我将一个将删除的文件移动到文件夹而不是删除它。我在rm命令上使用了alias命令来使用脚本而不是rm。现在的问题是我必须清空回收站。我写了这个剧本:
#!/bin/sh
unalias rm
rm -r "/home/recyclebin/*"
alias rm='/home/scriptrm.sh'
#
在这个脚本中我unalias rm命令,所以我可以再次使用它然后我清空回收站,然后再次使用将文件移动到回收站的脚本别名rm。当我运行这个脚本时,它什么也没做。我尝试只运行脚本来unalias rm,但是rm继续使用别名。有谁知道发生了什么?
谢谢。
答案 0 :(得分:0)
有几件事需要解决。
你是(双)引用你的glob(*
),所以它实际上不会扩展为任何东西(除非你的文件实际上名为*
)。
您的脚本将在子进程中运行,因此设置/重置别名等对调用脚本的父shell不起任何作用。 IOW,你最后不需要将它归结为原始形式。并且它不会继承您现有的父shell的别名。它们不是从父母那里导出的。