小编sim*_*ont的帖子

Bash:由于不必要的转义,脚本中的扩展功能无法正常工作

我想在bash脚本中做这样的事情.我正在使用bash 4.1.10.

# rm -rf /some/path/{folder1,folder2,folder3}
Run Code Online (Sandbox Code Playgroud)

从shell本身可以很好地(并且如预期的那样)工作.它会删除3个所需的文件夹,而不会触及所有其他文件夹.

当我把它放入脚本时会发生不必要的事情.例如,我的脚本:

#!/bin/bash
set -x
VAR="folder1,folder2,folder3"
rm -rf /some/path/{$VAR}
Run Code Online (Sandbox Code Playgroud)

执行此脚本时,不会删除文件夹.

我认为这是因为发生了一些不需要的引用.脚本输出使用#!/bin/bash -x:

rm -rf '/some/path/{folder1,folder2,folder3}'
Run Code Online (Sandbox Code Playgroud)

由于'商标,当然不能成功.

如何在我的脚本中使用它?

bash escaping brace-expansion

9
推荐指数
2
解决办法
5615
查看次数

iOS 5.1和Xcode 4.3.1 CodeSign错误

我刚刚下载了iOS 5.1和Xcode 4.3.1.但是当我要在我的设备中测试时,Xcode会给我错误:

CodeSign错误:SDK"iOS 5.1"中的产品类型"应用"需要代码签名

知道怎么解决吗?

xcode ios5.1

9
推荐指数
1
解决办法
2万
查看次数

在Git中管理并行版本的最佳方法是什么?

我有一个完善的软件工具包,但通常需要小的调整(主要是为了应对来自第三方产品的兼容性问题).我现在希望生成一个"新"版本(改进的API),它将基于原始版本 - 随着时间的推移,它将与现有分支不同,但是几年后,我将需要保持原来的"实时"需要兼容性的现有客户.当然,我需要确保"调整"也适用于"新"版本,因为这些问题(在大多数情况下!)也适用于"新"版本.

所以 - 我的理想(简单)工作流程将是:

  1. 处理"新"版本时 - 更改仅适用于该版本.
  2. 在处理"旧"版本时,一旦我对它们满意(当我提交,提交或其他任何内容)时,所有得到的更改将(尽可能自动!)应用于两个版本.

我意识到需要偶尔的人工干预,合并是相互矛盾的,但根据过去手动更改的经验,我希望这种情况很少见.

目前,我正在寻求放弃VSS(是的 - 继续嘲笑我保持这么长时间!),我希望Git会让这很容易,但到目前为止,似乎没有任何"简单" "解决方案,我看到的所有建议都是围绕"rebase"构建的,这对我来说似乎是"错误的",因为rebase似乎做了许多其他的事情,比如重写历史,当我需要的只是一个简单,真实的时候" "根据其他分支的变化"前进.

  • 我在这里错过了什么吗?
  • 有没有更简单,更正确的方法来做到这一点?
  • 使用不同的源代码控制系统而不是Git,我会更好吗?

所有的想法非常感谢!

git git-branch

9
推荐指数
1
解决办法
695
查看次数

在vim中将节移动到新文件

我有一个sectionfile1它应该被移动到file2.一般情况下我的视觉选择的块,将其删除,这样做:wqfile1,开放的file2,然后粘贴.

是否有一种简单的方法可以将文本块移动filefile2不关闭vim

vim

9
推荐指数
2
解决办法
2748
查看次数

纠正所有拼写错误的单词

有没有快速重复拼写纠正的方法?

例如,更改的每一个发生tehthe使用后:set spell,z=纠正第一次出现?

vim spell-checking

9
推荐指数
1
解决办法
536
查看次数

STL函数来测试某个值是否在某个范围内?

我有一个功能:bool inBounds(int value, int low, int high).是否有一个STL等价物可以做有用的事情(特别是采用不同类型的变量)?我找不到使用谷歌的人,我更愿意重复使用而不是重写.

c++ stl

8
推荐指数
2
解决办法
2万
查看次数

如何在GUI中检测不在GUI中的箭头键?

我正在编写一个应用程序,我需要检测其中的箭头键.C++有getch()函数.我们想要获取输入,然后添加对ASCII值的检查.

我们如何检测输入箭头键?谢谢

java

7
推荐指数
1
解决办法
1万
查看次数

多行bash评论礼仪(#+)

高级Bash脚本编程指南广泛使用的例子多行注释的形式,:

echo ls -l | sh
#  Passes the output of "echo ls -l" to the shell,
#+ with the same result as a simple "ls -l".
Run Code Online (Sandbox Code Playgroud)

(在管道|符号的说明中找到).其他多行注释如下所示:

#!/bin/bash
# rpm-check.sh

#  Queries an rpm file for description, listing,
#+ and whether it can be installed.
#  Saves output to a file.
# 
#  This script illustrates using a code block.
Run Code Online (Sandbox Code Playgroud)

(链接页面中的示例3.2).

什么是ratonale使用#+?一些多线评论似乎表明评论在下一行继续,但其他评论则没有.
我是否应该(尝试)遵循我自己的脚本中的"bash-scripting评论礼仪"?

bash

7
推荐指数
1
解决办法
3864
查看次数

如何在java中使用wkhtmltopdf将pdf导出到OutputStream

我在ProcumBuilder和Process的java项目中使用了wkhtmltopdf:

ProcessBuilder pb = new ProcessBuilder("wkhtmltopdf.exe", "input.html", "output.pdf"); Process process = pb.start();

此解决方案使用html文件作为输入,并将输出保存为磁盘上的pdf文件.但我的html不是文件,它是一个OutputStream,我想在飞行中创建pdf文件,不想将其保存在磁盘上.

有没有办法用OutputStream传递参数并将结果作为另一个OutputStream?

java pdf outputstream wkhtmltopdf

6
推荐指数
1
解决办法
2676
查看次数

在bash中执行命令时,路径中的多个可执行文件时生成警告

说我有:

>which -a foo
/bin/foo
/usr/bin/foo
Run Code Online (Sandbox Code Playgroud)

我想要的东西:

>foo
Warning: multiple foo in PATH
... foo gets executed ...
Run Code Online (Sandbox Code Playgroud)

这个功能今天真的让我节省了很多时间.我应该猜到这种情况发生得比较早,但是在开始时我的问题并不清楚,我开始向相反的方向挖掘.

bash

6
推荐指数
1
解决办法
134
查看次数