tutorial traduccion script meaning lenguaje comment bash macos date-math

script - bash traduccion



¿Cómo puedo fechar las matemáticas en un script bash en OS X Leopard? (5)

Me doy cuenta de que podría preparar un pequeño programa de C o Ruby para hacer esto, pero quiero que mi script tenga la menor cantidad de dependencias posible.

Teniendo en cuenta esa advertencia , ¿cómo se puede fechar las matemáticas en un script bash en OS X? He visto una publicación (en otro sitio) donde alguien hizo lo siguiente:

date -d "-1 day"

Pero esto no parece funcionar en OS X.

Apéndice:

Varias personas han comentado y respondido que Ruby, Python, Perl y similares vienen de serie con OS X. Estoy familiarizado con estos tres idiomas y podría escribir fácilmente un guión que haga lo que yo quiera. Como cuestión de hecho, ya tengo un guión escrito en Ruby.

Entonces quizás debería aclarar a qué me refiero con ''dependencia externa''. Lo que quiero decir es que no quiero que mi script bash tenga que llamar a ningún otro script externo. En otras palabras, quiero que use alguna utilidad disponible en una instalación estándar de OS X y que ya esté en la ruta.

Sin embargo, no parece que esto sea posible, así que tendré que hacerlo con mi dependencia externa: un script de Ruby.


Me doy cuenta de que podría preparar un pequeño programa de C o Ruby para hacer esto, pero quiero que mi script tenga la menor cantidad de dependencias posible.

Hacer en C o como un script de Ruby daría como resultado menos dependencias, y sería más multiplataforma. Bash-scripting solo llama a otros scripts / aplicaciones, principalmente las utilidades de GNU. Muchos de los comandos no están disponibles, o toman diferentes argumentos en otras plataformas (especialmente entre OS X y Linux) ..

Ruby está incluido por defecto en OS X Leopard (y 10.4, y probablemente en versiones anteriores si recuerdo correctamente), y si utiliza las bibliotecas de fechas integradas de Rubys, funcionará de manera consistente en cualquier plataforma.

Cada vez que intenta hacer algo remotamente complicado, ¡en general es mejor usar un lenguaje de scripting "apropiado"!


El comando que menciona Matthew funciona para mí con / bin / date en Leopard. Además, como señala Schwern, si está seguro de que su script de shell se ejecutará en Mac OS X, ¿por qué no quiere usar Python o Ruby, que ambos vienen de forma estándar en / usr / bin? Esto de ninguna manera afectaría la portabilidad en su escenario particular.


$ date -v -1d

-d establece el indicador de horario de verano.

Pruebe la fecha del hombre para obtener más información.


Algún genio decidió que el programa de fecha en Mac OS X debería ser diferente de * nix, por lo que el comando es en realidad:

date -v-1d

El interruptor de ajuste toma el formato -v +/- [ymwdHMS].

Esto es particularmente frustrante para mí, ya que tengo que escribir el mismo guión de manera diferente en los dos sistemas. ¡¡¡¡¡TRABAJOS!!!!!


Por ejemplo, este comando de fecha OS X agregará 14 días a la cadena de entrada 20160826 (no la hora actual):

date -j -f %Y%m%d -v+14d 20160826 +%Y%m%d