我正在尝试创建一个接受命令行参数的bash文件,但是我的OPTARG没有产生任何结果,看来这是必要的,以使其工作?
这是我有的:
#!/bin/bash
while getopts ":b" opt; do
case $opt in
b)
echo "result is: $OPTARG";;
\?)
echo "Invalid option: -$OPTARG" >&2;;
esac
done
Run Code Online (Sandbox Code Playgroud)
当我用:运行时file.sh -b TEST,这是我得到的结果:result is:
有什么想法在这里发生了什么?
我正在创建一个脚本来从命令行获取正则表达式输入并处理它; 这样的事情:
chomp(my $regex = $ARGV[0]);
my $name = '11528734-3.jpg';
$name =~ $regex;
print $name . "\n";
Run Code Online (Sandbox Code Playgroud)
我对脚本的输入是:"s/.jpg/_thumbnail.jpg/g"但是$ name没有从命令行处理正则表达式输入.
有关如何使这项工作的任何建议?
谢谢!
我正在尝试备份数据库,但出于版本控制的目的,我想要完整的插入语句,如下所示:
INSERT INTO `table_name` (`id`, `type`) VALUES (1, 2);
INSERT INTO `table_name` (`id`, `type`) VALUES (2, 2);
Run Code Online (Sandbox Code Playgroud)
而不是默认值:
INSERT INTO `table_name` (`id`, `type`) VALUES (1, 2), (2, 2);
Run Code Online (Sandbox Code Playgroud)
我这样做的主要原因是它将所有插入值放在它们自己的行上而不是整个表的单行上.
我尝试添加--complete-inserts和--extended-inserts以各种格式(一个和两个同时),到目前为止,我没有看到从mysqldump生成的sql文件的任何更改.
这是我的查询,使用完整,扩展和详细标志:
mysqldump -cev --user=<user> --password=<password> <dbname> > <file_location>/backup.sql
Run Code Online (Sandbox Code Playgroud) 我有一个看起来像这样的表:
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(30) | NO | | | |
+-------+------------------+------+-----+---------+----------------+
Run Code Online (Sandbox Code Playgroud)
很简单的表.我试图找到一种方法来只选择最大长度为8个字符的结果,原因如下:
1)为记录集创建的HTML表太窄,无法使用大于8个字符的任何内容.
2)我们不能在显示时截断名称.
我正在查看MySQL手册,但找不到任何可靠的结果.我将尝试在where子句中使用char_length,看看我能想出什么,并将发回我找到的内容,但我希望有人之前已经这样做了.
我用modernizr加载jQuery,'complete'函数中的所有代码运行正常!但是,如果我试图从外部'Moderniz.load'调用一些js,那么firebug说:'$未定义'.
这有效:
<script>
Modernizr.load([
{
load: [ '//ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js'],
complete: function () {
if ( !window.jQuery ) {
Modernizr.load('/weblounge-sites/www/js/jquery-1.7.min.js', '/weblounge-sites/www/js/jqueryui-1.8.min.js');
}
}
},
{
load: [ 'some additional scripts' ],
complete: function() {
$ = jQuery;
$(document).ready(function(){
some js
});
});
}
},
{
test: Modernizr.boxshadow,
nope: 'polyfills/PIE.js',
}
]);
</script>
Run Code Online (Sandbox Code Playgroud)
但是后来视图行的调用失败了:
<script>
$(document).ready(function(){
$('#hauptsponsoren').cycle({
fx: 'fade',
speed: 4000,
timeout: 10000
});
});
</script>
Run Code Online (Sandbox Code Playgroud) 我设置magento的massAction用于Admin网格,我想知道如何摆脱为massAction创建的复选框上的"过滤器"下拉菜单.
以下是我尝试过的一些事情:
$this->getRequest()->setParam('filter', false);
$this->getMassactionBlock()->setData('filter', false);
$this->getMassactionBlock()->unsetData('filter');
Run Code Online (Sandbox Code Playgroud)
不确定我可能有什么其他选择.有人有什么想法吗?
在Perl中,我试图逐行读取文件并处理每一行,并根据需要进行修改.到目前为止,我正在阅读的唯一方法是将文件读入数组,根据需要修改数组的每个元素,然后在完成后将其输出回文件.
有没有更好的方法来做到这一点,也许某种方式我可以替换单行,因为我一起去?
现在,我的处理代码如下所示:
while (my $line = <FILE>)
{
# process line here
# ...........
print FILE $line;
}
Run Code Online (Sandbox Code Playgroud)
我的代码似乎非常接近,除了它在我当前所在的行之后替换一行,所以看起来如果我可以将文件指针向上移一行,它会写入文件中的正确位置.
我是在正确的轨道上吗?从这里我需要做什么来备份文件指针,以便写入我正在阅读的同一行?
编辑:
在我收到的答案中,使用local $^I和Tie::File工作都很好.我结束了,Tie::File所以我不必打印出文件的每一行.这样,如果在脚本中途发生了某些事情,我的文件就不会搞砸了.
我的新代码如下所示:
use Tie::File;
chomp(my $filename = $ARGV[0]);
tie my @array, 'Tie::File', $filename or die $!;
foreach my $line(@array)
{
# ...... line processing happens here .......
# ...... $line is automatically written to file if $line is changed .......
}
Run Code Online (Sandbox Code Playgroud) 我还没有看到任何有选择性排序的例子:
[A:一个主列表]
[B:一个子列表]
[C:另一个子列表]
条件:
示例结构:
<ul class="A"></ul>
<ul class="B">
<li class="child-B" />
<li class="child-B" />
<li class="child-B" />
</ul>
<ul class="C">
<li class="child-C" />
<li class="child-C" />
<li class="child-C" />
</ul>
Run Code Online (Sandbox Code Playgroud)
我已经尝试将sortable应用于列表并尝试动态改变connectWith(它们都可以连接到A),但没有运气.这是我的一次尝试(jsFiddle).我也尝试将'.master,.sub'作为初始connectWith,但它允许交叉共享.
我认为第二个循环是更新sortable的connectWith,所以我卡住了.有任何想法吗?