Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux date命令在使用rpm spec文件内部时给出错误的输出_Linux_Rpm_Specifications_Rpmbuild_Rpm Spec - Fatal编程技术网

Linux date命令在使用rpm spec文件内部时给出错误的输出

Linux date命令在使用rpm spec文件内部时给出错误的输出,linux,rpm,specifications,rpmbuild,rpm-spec,Linux,Rpm,Specifications,Rpmbuild,Rpm Spec,在安装软件包之前,我必须执行一些必要的步骤,例如备份以前的数据存储快照。 为此,我使用了%pre脚本,如下所示 %pre #!/bin/sh -------- -------- stamp=`date +%Y%m%d%H%M%S` echo ${stamp} ------------- ------------- 输出如下:20161103123325 它正在打印一些随机字符和日期。“Source”在我的规范文件中的任何位置都不存在 同一个脚本完全可以作为独立脚本使用。平台是CentOS7。r

在安装软件包之前,我必须执行一些必要的步骤,例如备份以前的数据存储快照。 为此,我使用了%pre脚本,如下所示

%pre
#!/bin/sh
--------
--------
stamp=`date +%Y%m%d%H%M%S`
echo ${stamp}
-------------
-------------
输出如下:20161103123325 它正在打印一些随机字符和日期。“Source”在我的规范文件中的任何位置都不存在


同一个脚本完全可以作为独立脚本使用。平台是CentOS7。

rpmbuild知道一整套宏。显然,某个宏被定义为:

%S = %SOURCE
我没有找到告诉rpmbuild不要扩展宏的东西;但是有一种方法可以欺骗他不要这样做。我知道这是一个小小的解决办法,但这是我能想到的最好办法:

stamp=$(date '+%Y%m%d%H%M%''S')
  • 注意,我用推荐的
    $()
    调用替换了反勾号
  • 我刚刚插入了两个“”以将字符串分成两部分;这避免了宏替换

    • rpmbuild知道一整套宏。显然,某个宏被定义为:

      %S = %SOURCE
      
      我没有找到告诉rpmbuild不要扩展宏的东西;但是有一种方法可以欺骗他不要这样做。我知道这是一个小小的解决办法,但这是我能想到的最好办法:

      stamp=$(date '+%Y%m%d%H%M%''S')
      
      • 注意,我用推荐的
        $()
        调用替换了反勾号
      • 我刚刚插入了两个“”以将字符串分成两部分;这避免了宏替换

      如果在date命令中用第二个百分比符号“%”转义百分比“%”,如以下链接所述,这将纠正将%S扩展为输出中的“源”时出现的行为

          stamp=`date +%%Y%%m%%d%%H%%M%%S`
      
      请参阅此处的“编写宏”部分

      如果在date命令中用第二个百分比符号“%”转义百分比“%”,如以下链接所述,这将纠正将%S扩展为输出中的“源”时出现的行为

          stamp=`date +%%Y%%m%%d%%H%%M%%S`
      
      请参阅此处的“编写宏”部分