什么在makefile或shell命令中意味着什么?

时间:2016-12-01 02:18:19

标签: bash makefile

有人可以在makefile中解释以下代码的含义吗?

@mv $$@~ $$@

经过一番搜索,我认为这意味着shell命令:

mv $@~ $@

但是什么是$@~

1 个答案:

答案 0 :(得分:1)

这看起来像 bash脚本而不是makefile。

$@表示序列化为文本列表的所有当前命令行参数(当前脚本)。

~在文件名的开始处,它将被展开并通常引用您的$HOME Tilde Expansion Reference

~位于文件名的 end ,它只是一个普通字符。 约定意味着它是备份文件 Reference

因此mv $@~ $~命令

  1. 接受文件名列表作为参数
  2. 将备份文件转换回非备份
  3. 如果您有此目录:

    /foo.txt~
    /bar.txt~
    /baz.txt~
    

    然后运行命令:

    ./yourscript.sh foo.txt baz.txt
    

    目录内容将更改为:

    /foo.txt
    /bar.txt~
    /baz.txt