关于命令 date 的问题
今天遇到一个很奇怪的问题,我在控制台下输入:$ date +%Y/%m/%d-%H:%M
date: 额外的操作数 “+%Y/%m/%d-%H:%M”
但是我执行下面操作,显示正常。test_date 里写的是date +%Y/%m/%d-%H:%M。为什么会这样呢?
$ vim test_date
$ chmod +x test_date
$ test_date
2005/12/24-12:30 看/etc/profile
alias date='date +%c'
如果你这么运行是没有问题的:
alias date='date'
date +%F
你是在虚拟终端konsole输入的吧?你在真实的终端输入试试,应该没问题了。konsole有很多奇怪的问题的。 ft,这是系统设置。
在哪里都一样! demonlj,你试下再说。
alias date='date'
date +%F
原来如此,我一直为这个烦恼了好几天,ML为什么要这样设置的? demonlj,你试下再说。
语气有点怪,但是这里是论坛我不介意的。
我当然是试过来才敢发言啦!
alias date='date +%c'
这句话定义在/etc/bashrc的最后,你可以看一下!
无论是虚拟终端还是真实的,只要你需要登陆到shell,那么系统就会执行
source ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
unset USERNAME
所以它又调用~/.bashrc
# .bashrc
# User specific aliases and functions
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
可以看出,它又指向了/etc/bashrc。这样之后date自然是“等于”date +%c啦 也许是这样子的,但konsole的确有问题,比如cat FILE 2 > /dev/null,在konsole下它把2当做文件名,但在真实的终端不会。还有,比如你在编译c程序时,这个语句:“printf("dddddd");”,即输出没换行,你看有什么效果。 看/etc/profile
alias date='date +%c'这是不对的,你不能对一个只能接受一个参数的命令下alias。应该重新定义zh_CN的locale,更改其date_fmt格式,好好看看最新的libc里是什么样子。 @_@这不是我这么做的!
也许是这样子的
:shock: 你自己就没试也敢说别人 :shock::shock::shock: 就是那个该死的 alias 闹的! :evil: 要不我们合伙怂恿kanker费了它吧 好主意!
拿着剪刀去! :twisted: :twisted::twisted::twisted:
我也支持~~
页:
[1]
2