我有一个%c格式的日期(可能是任何其他),我需要在date命令中使用它.%c不是美国格式.它是德国人,因为它是德国服务器.这在美国服务器上也无法正常工作.(区域设置为德语或美国语)
这不起作用(包括错误):
user@server:~$ NOW=$(date +%c); echo $NOW
Do 19 Dez 2013 22:33:28 CET
user@server:~$ date --date="$NOW" +%d/%m/%Y
date: ungültiges Datum „Do 19 Dez 2013 22:33:28 CET“
Run Code Online (Sandbox Code Playgroud)
(日期:ungültigesGeatum"Do 19 Dez 2013 22:33:28 CET"= date: invalid date „Do 19 Dez 2013 22:33:28 CET“)
困难在于我不知道以后会使用哪种语言环境甚至whci dateformat,因为用户可以设置自己的格式.所以一个简单的特定解析解决方案真的不会起作用!
但是我该怎么办呢?
为了推广这个问题:
如果我有一个日期格式format1 (可以是任何或至少可以反转的格式)我可以使用日期来获取格式化日期.但是如果我想将它格式化为另一个日期(format2)我该怎么做呢?
使用除coreutils之外的任何其他解决方案都是没有意义的,因为我正在尝试为尽可能多的unix机器开发一个bash脚本.
DATE=$(date "+$format1")
date --date="$DATE" "+$format2" # Error in most cases!
Run Code Online (Sandbox Code Playgroud)
这是必需的,因为我有一个用户可以给出日期格式的命令.将显示此日期字符串.但在后面的步骤中,我需要将此日期字符串转换为另一个固定字符串.我可以操作命令将获得的whcih格式,我可以操作输出(或用户将看到的内容).
我无法运行该命令两次,因为它非常耗时.
我找到了类似解决方案的东西:
# Modify $user_format …Run Code Online (Sandbox Code Playgroud) 我计划在最后用Docker建立一个基于jenkins的CD工作流程.我的想法是为每个绿色构建自动构建(由Jenkins)一个docker镜像,然后通过jenkins或'hand'部署该图像(我还不确定是否要自动运行每个绿色构建).
达到建立新图像的目的很容易.我的问题是关于部署本身."重新加载"或"重启"正在运行的docker容器的最佳做法是什么?假设为容器更改了映像,如何在内部运行服务时优雅地重新加载它?我是否需要使用多个运行容器和负载平衡来进行传统舞蹈,或者是否有"停靠"方式?
我已经使用这些配置选项(Ubuntu 12.04)创建了Qt 5.2.0库的静态版本:
-opensource -confirm-license -force -pkg-config -release -static -prefix'/ home/juzzlin/qt5'-no-icu -opengl desktop -no-glib -accessibility -nomake examples -nomake tests -qt-zlib - qt-libpng -qt-libjpeg -qt-sql-sqlite -qt-xcb -qt-pcre -v
现在,问题是当我编译并链接我的应用程序对这些Qt库时,它尝试从Qt安装路径加载字体/home/juzzlin/qt5/lib/fonts.这应该怎么样?该应用程序适用于我用来编译它的机器,但不适用于其他机器.我也不想将Qt东西安装到应用程序的某些系统目录中,因为应用程序不应该这样做.
这是我得到的错误:
QFontDatabase:找不到字体目录/ home/juzzlin/qt5/lib/fonts - 是否正确安装了Qt?
如何强制它在其他目录中搜索字体?
另一件我不明白的是,为什么我在使用MXE交叉编译Windows时没有遇到同样的问题?它在编译Qt库时使用几乎相同的配置选项.
我在笔记本电脑上安装了ADT Bundle.我有ubuntu 13.10,但是当我打开ADT时,我看到了这样的消息:
Unexpected exception 'Cannot run program "/home/.../Descargas/adt-bundle-linux-x86_64 20131030/sdk/platform-tools/adb":
error=2, No existe el archivo o el directorio' while attempting to get adb version from '/home/.../Descargas/adt-bundle-linux-x86_64-20131030/sdk/platform-tools/adb'
[2013-12-25 16:20:14 - adb] Unexpected exception 'Cannot run program "/home/.../Descargas/adt-bundle-linux-x86_64-20131030/sdk/platform-tools/adb":
error=2, No existe el archivo o el directorio' while attempting to get adb version from '/home/.../Descargas/adt-bundle-linux-x86_64-20131030/sdk/platform-tools/adb'
Run Code Online (Sandbox Code Playgroud)
这是我第一次在android上安装和开发,所以,我不知道该怎么做.有人能帮我吗?
我在Hyper-V上遇到CentOS 6.4的问题.我无法使用yum安装或ping任何DNS地址.有一个公告:Couldn't resolve host 'mirrorlist.centos.org'等我根据这个视频一直试图解决它:http://www.youtube.com/watch?v = 2BZHvVpXsg4但仍然没有.我该怎么办?



我正在寻找一种可以帮助我快速构建GUI的软件(例如HTML页面).当从GUI中选择不同的选项(例如HTML表单)时,这些选项会神奇地变成命令行选项.例如:我的GUI允许我选择:
点击"提交"时,此用户输入将变为:
$ cmd_line --input $inputfn --output $outputfn --option1-on --option2-off --option3=42
Run Code Online (Sandbox Code Playgroud)
我想我需要编写一个简单的XML(YAML?)配置文件来描述简单的布局和命令行特性(单选按钮,文本字段......).
我在做梦还是有这样的东西?
为什么将字符插入可执行的二进制文件会导致它"中断"?
而且,有没有办法在不破坏编译程序的情况下添加字符?
我已经知道很长一段时间了,可以使用十六进制编辑器来更改已编译的可执行文件中的代码,并且仍然可以正常运行...
作为下面的应用程序中的一个示例,Facebook可以更改为Lacebook,程序仍将执行正常:
我也知道如果添加了新字符,它将破坏程序并且不会运行,或者它会立即崩溃.例如,My在前面添加Facebook将实现此目的:
C并了解代码是用人类可读,编译和链接到可执行文件中编写的.我在文件sample.txt中有一个json
我想通过指定解码整个json和打印键值.我的每个代码是
#!/usr/bin/perl
use JSON;
use Data::Dumper;
use JSON::XS qw( decode_json );
open (han1, "sample.txt") or die "can not read this file ";
@array1 = <han1>;
$tst = $array1[0];
$text = decode_json $tst;
print Dumper($text);
Run Code Online (Sandbox Code Playgroud)
我有一个json名称'messages_ready'的密钥.我想打印'messages_ready'的价值..
我的json如下
[
{
"arguments": {},
"auto_delete": false,
"backing_queue_status": {
"avg_ack_egress_rate": 55.02128728993393,
"avg_ack_ingress_rate": 55.02128728993393,
"avg_egress_rate": 55.02128728993393,
"avg_ingress_rate": 109.64602476156203,
"delta": [
"delta",
0,
0,
0
],
"len": 6465,
"next_seq_id": 7847104,
"pending_acks": 4,
"persistent_count": 0,
"q1": 0,
"q2": 0,
"q3": 0,
"q4": 6465,
"ram_ack_count": 4,
"ram_msg_count": 6465, …Run Code Online (Sandbox Code Playgroud) 我正在编写一个bash脚本来使用reposync从远程repos中提取包,所以我可以将我的节点指向本地.因此,我试图保持本地repo configs尽可能与usptream repo configs相似,如下所示:
# upstream
baseurl=http://mirror.freedomvoice.com/centos/$releasever/os/$basearch/
# local
baseurl=http://user:password@repo.example.com/centos/stable/$releasever/os/$basearch/
Run Code Online (Sandbox Code Playgroud)
在bash脚本中,是否有更简洁的方法来获取$ releasever和$ basearch值?我在考虑做以下事情:
yum_metadata=$(yum version nogroups)
Run Code Online (Sandbox Code Playgroud)
哪个回报:
Loaded plugins: versionlock Installed: 6/x86_64 360:6167019baac7e76f94c26320424dc41a7f046a70 version
Run Code Online (Sandbox Code Playgroud)
然后regexing为6/x86_64值.有点凌乱,寻找更优雅的方法.
我对如何正确使用Python的子进程模块感到困惑,特别是check_output方法的第一个参数和shell选项.查看下面交互式提示的输出.我将第一个参数作为列表传递,并且根据是否shell=True设置,我得到不同的输出.有人可以解释为什么这是和输出的输出?
>>> import subprocess
>>> subprocess.check_output(["echo", "Hello World!"])
'Hello World!\n'
>>> subprocess.check_output(["echo", "Hello World!"], shell=True)
'\n'
Run Code Online (Sandbox Code Playgroud)
现在,当我将第一个参数作为简单字符串而不是列表传递时,我得到了这个讨厌的堆栈跟踪.为什么会这样?这里发生了什么?
>>> subprocess.check_output("echo Hello World!")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 537, in check_output
process = Popen(stdout=PIPE, *popenargs, **kwargs)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1228, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)
但是,当我打开shell = True时,它会完美地运行:
>>> subprocess.check_output("echo Hello World!", shell=True)
'Hello …Run Code Online (Sandbox Code Playgroud)