我需要维护这个shell脚本:
export DAYDAY=`gdate --date "30 days ago" +"%Y%m%d"`
if [ -d $TMP/AA/$DAYDAY]; then
rm -r $TMP/AA/$DAYDAY
fi
Run Code Online (Sandbox Code Playgroud)
但我无法运行它,因为它无法找到gdate; 此代码用于清除正好30天的日志目录.
这是摹NU的date; 呼吁gdate与 BSD 相关的系统将其与自己的date.
我在 90% 的 Mac 办公室中使用 Linux,我的很多同事的脚本都引用了诸如gsed和 之类的东西gdate。在我无法通过打开开关正确解决此问题的情况下,$OSTYPE我最终投降并执行了以下操作:
sudo ln -s $(which date) /bin/gdate
Run Code Online (Sandbox Code Playgroud)
这符号链接gdate到date.
这是相当安全的,因为永远不应该有一个gdate(或gsed,gtar或gmake),用于安装在GNU版本/ Linux的是GNU版本,很明显。
当然,您也可以为命令设置别名,但这会影响用户和 shell。它实际上是整个程序的别名。
在Linux以外的*nix系统它是很常见的公用事业GNU味道要安装带有前缀g(如gmake,gtar等).在这种情况下,它可能是指date命令的GNU风格.因此,既然您使用的是Linux,只需将其更改为date:
export DAYDAY=`date --date "30 days ago" +"%Y%m%d"`
if [ -d $TMP/AA/$DAYDAY]; then
rm -r $TMP/AA/$DAYDAY
fi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3246 次 |
| 最近记录: |