我注意到,当打开.bash_history它只包含我上一个会话中的条目时,似乎当前会话仅在退出时附加.有没有办法阻止当前会话保存?bash如果知道如何做到这一点,即使崩溃也是一种选择.我发现我可以完成kill -9这个过程,但是如果有更好的方法我会很高兴知道.
我在bash脚本中启动了一些屏幕,然后runserver在每个屏幕中运行django的命令.我希望能够以编程方式阻止它们,这需要我发送Control+c给runserver.
如何从我的bash脚本发送这些击键?
我想getopts在我的.bash_profile中定义的函数内部使用.我的想法是,我想将一些标志传递给此函数以改变其行为.
这是代码:
function t() {
echo $*
getopts "a:" OPTION
echo $OPTION
echo $OPTARG
}
Run Code Online (Sandbox Code Playgroud)
当我这样调用它时:
t -a bc
Run Code Online (Sandbox Code Playgroud)
我得到这个输出:
-a bc
?
Run Code Online (Sandbox Code Playgroud)
怎么了?我想在bc没有手动移位和解析的情况下获得该值.如何getopts在函数内正确使用?
编辑:纠正我的代码片段尝试$ OPTARG,无济于事
编辑#2:好的事实证明代码没问题,我的shell被搞砸了.打开一个新窗口解决了它.arg值确实在$ OPTARG中.
我想从键值对语法中提取值对,但我不能.
我试过的例子:
echo employee_id=1234 | sed 's/employee_id=\([0-9]+\)/\1/g'
Run Code Online (Sandbox Code Playgroud)
但这给了employee_id=1234而不是1234实际上是捕获组.
我在这做错了什么?我也尝试过:
echo employee_id=1234| egrep -o employee_id=([0-9]+)
Run Code Online (Sandbox Code Playgroud)
但没有成功.
这是我的Json代码的示例:
array("id" => 0, "navn" => "Vind telefon", "udgiver" => "Telia", "beskrivelse" => utf8_encode("Vind en Iphone 5 ved at gætte 1 spørgsmål"), "tilmeldte" => 89, "startdate" => "10-04-2013", "enddate" => "30-06-2013"),
Run Code Online (Sandbox Code Playgroud)
如果我navn在程序中打印出属性,我会得到以下输出:
"Vind Telefon"
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,它保留了双引号.
有什么办法可以避免吗?
我的完整代码:
<?php
header('Content-Type: json; charset=utf-8');
$lottery = array(
array("id" => 0, "navn" => "Vind telefon", "udgiver" => "Telia", "beskrivelse" => utf8_encode("Vind en Iphone 5 ved at gætte 1 spørgsmål"), "tilmeldte" => 89, "startdate" => "10-04-2013", "enddate" => "30-06-2013"),
array("id" => 1, "navn" …Run Code Online (Sandbox Code Playgroud) 我怎样才能调换字母o与字母e和e用o?
我刚试过这个,但我不认为这是一个很好的方法.有没有更好的办法?
my $str = 'Absolute force';
$str =~ s/e/___eee___/g;
$str =~ s/o/e/g;
$str =~ s/___eee___/o/g;
Run Code Online (Sandbox Code Playgroud)
输出: Abseluto ferco
在我的bash脚本中,我有一个包含十六进制数字的字符串,例如hex="0x12345678".是否可以将其视为十六进制数并对其进行位移?
我正在尝试screen从shell 创建一个会话/窗口并在其中启动一个命令.我该怎么办?
我正在尝试将GNU parallel大量文件发布到Web服务器.在我的目录中,我有一些文件:
file1.xml
file2.xml
Run Code Online (Sandbox Code Playgroud)
我有一个看起来像这样的shell脚本:
#! /usr/bin/env bash
CMD="curl -X POST -d@$1 http://server/path"
eval $CMD
Run Code Online (Sandbox Code Playgroud)
脚本中还有其他一些东西,但这是最简单的例子.我试图执行以下命令:
ls | parallel -j2 script.sh {}
Run Code Online (Sandbox Code Playgroud)
这些GNU parallel页面显示为对目录中的文件进行操作的"正常"方式.这似乎将文件的名称传递给我的脚本,但curl抱怨它无法加载传入的数据文件.但是,如果我这样做:
find . -name '*.xml' | parallel -j2 script.sh {}
Run Code Online (Sandbox Code Playgroud)
它工作正常.在我的脚本中传递参数的方式ls和find方法之间是否存在差异?或者我是否需要在该脚本中执行其他操作?
说我有以下域名:
example.com
Run Code Online (Sandbox Code Playgroud)
我有这个域的通配符SSL证书.子域test.example.com正确验证.但是,当我尝试使用类似的域时demo.test.example.com,我在所有主流浏览器中收到错误消息:
demo.test.example.com uses an invalid security certificate.
The certificate is only valid for the following names:
*.example.com , example.com
Run Code Online (Sandbox Code Playgroud)
是否可以将通配符证书用于"子子域"?