2017-03-23 3 views
0

the command in bash_profilealias Befehl "-d Datum @" nicht

alias getTime1='date -d @1490170832 +"%F %H:%M:%S"'

alias getTime2='date -d @$1'

$ 1 auf Mac akzeptieren

but in terminal it not work

donaldlin @ ~ $ getTime1

2017-03- 22 16:20:32

Donaldlin @ ~ $ getTime2 1490170832

Datum: das Argument '1490170832' fehlt ein führender '+'; Wenn Sie eine Option zum Angeben von Datum (en) verwenden, muss ein beliebiges Nicht-Option-Argument eine Formatzeichenkette sein, die mit '+' beginnt Versuchen Sie 'date --help' für weitere Informationen.

Ich habe versucht "Datum -d @ \ $ 1", "Datum -d @ '$ 1'", "Datum -d $ {@ $ 1}" und so weiter, aber es funktioniert immer noch nicht.

Aktualisierung: alias Es können keine Parameter übernommen werden. Sie müssen stattdessen eine Funktion erstellen Dank @chepner und @ l0b0

+0

Hallo, willkommen zu StackOverflow. Bitte schreibe dein Problem nicht in Form von Fotos. Stattdessen schreibe bitte (mit entsprechender Formatierung) die Frage auf. Lesen Sie auch, wie Sie hier eine Frage stellen können - https://stackoverflow.com/help/mcve – VM17

+0

danke für Ihre Ratschläge – donald

Antwort

0

alias es kann nicht Parameter nehmen. Sie müssen stattdessen eine Funktion erstellen.

+0

Ich stimme nicht mit Ihnen überein. Ich habe versucht "cat $ 1" alias zu verwenden. Es ist okay. – donald

+2

@donald: Wahrscheinlich haben Sie Ihren Alias ​​mit doppelten Anführungszeichen definiert, 'alias foo =" cat $ 1 "', was bedeutet, dass "$ 1" zu einer leeren Zeichenfolge erweitert und zum Zeitpunkt der Definition verworfen wurde. Das heißt, Ihr Alias ​​ist genau derselbe wie 'alias foo = cat'. Aliase haben keine Argumente. – chepner

+0

@chepner Oh, ich verstehe. Vielen Dank. Ich versuche 'alias foo1 =" cat $ 1, $ 2 "' und 'alias foo2 =" cat $ 2, $ 1 ", und ich bekomme die Antwort. – donald