2014-03-05 49 views
0

我有一个超简单的脚本,其中包含Linux程序碎片,它包含从命令行(bash)始终工作的参数。特别是'shred -uzn 35'简单的Linux碎片脚本错误

名为D的脚本具有执行权限集。

当我运行该脚本,Bash打印错误:

$ D some_file_to_delete 
shred: missing file operand 

我意识到,解决问题可能是因为程序本身一样简单。请帮忙?

在此先感谢。

编辑:错误“缺少文件操作数”是由于脚本没有设置为采取参数,如通过“$ @”的事实。另外,正如接受的答案中所述,我同意一个别名对于这种情况是完全合理的(比在$ PATH中的某个脚本更有意义)。

+0

显示脚本 – hek2mgl

+0

您可以发布您的脚本呢? –

+0

该文件仅包含命令'shred -uzn 35' –

回答

3

由于您使用的脚本,而不是一个别名,你需要通过

shred -uzn 35 "[email protected]" 

来传递参数在这种情况下,然而,我建议你不要做它的别名。在你.bashrc文件,补充一点:

alias D='shred -uzn 35' 
+0

我将定义一个函数:'D(){shred -uzn 35“$ @”; }'。很少有理由定义别名而不是函数。 – chepner

+0

@chepner我不同意。这只是运行带有一些默认参数的命令,这基本上是一个别名。 – Kevin

+0

我甚至会说当别名足够时不要打扰一个函数。你为什么不喜欢别名? – Kevin