我试图找出我认为在BASH中一个微不足道的问题,但我很难找到正确的语法.我想循环遍历一组值,其中一个是星号(*),我不希望在此过程中发生任何通配符扩展.
WHITELIST_DOMAINS="* *.foo.com *.bar.com"
for domain in $WHITELIST_DOMAINS
do
echo "$domain"
done
Run Code Online (Sandbox Code Playgroud)
我有上面的内容,我正在尝试获得以下输出:
*
*.foo.com
*.bar.com
Run Code Online (Sandbox Code Playgroud)
取而代之的是,我在当前目录中获得了一个目录列表,后跟*.foo.com和*.bar.com
我知道我需要一些逃避或引用某个地方......清晨的阴霾在我的脑子里仍然很厚.
我已经回顾了这些问题:
考虑以下:
SET(TEST_DIR, "test")
INSTALL(PROGRAMS scripts/foo.py DESTINATION ${TEST_DIR})
INSTALL(PROGRAMS scripts/foo.py DESTINATION @TEST_DIR@)
Run Code Online (Sandbox Code Playgroud)
第一个INSTALL命令不起作用.第二个.这是为什么?这两者有什么区别?@@除了在创建配置文件的上下文中,我没有找到任何对扩展的引用.其他一切只使用${}扩展.
更新:好的,上面的明显错误.我的SET()命令有一个无关的逗号.删除它,使它看起来像:
SET(TEST_DIR "test")
Run Code Online (Sandbox Code Playgroud)
导致两者@@和${}扩展工作.仍然想知道(a)@@相反的含义是什么${},以及为什么只有前者与我的错误SET()陈述一起工作.
shopt -s failglob;
ls -l /non-existent/*; echo A;
echo B
Run Code Online (Sandbox Code Playgroud)
只打印“B”(以及“不匹配”错误)。
http://www.gnu.org/software/bash/manual/bashref.html#Filename-Expansion
表示导致扩展失败的命令没有被执行;但并不是说该行的其余部分被忽略。如何限制扩展失败仅影响实际命令?
这是在 Gentoo-Linux 上的 GNU bash 版本 4.2.45(1)-release (i586-pc-linux-gnu) 下。
我正在使用树状态(扩展/选定节点)保存并创建了一个可以保存和恢复节点状态的实用程序类.它工作正常.
但是仍然存在JTree本身的一个问题 - 当用户正在使用一些JTree实例(扩展/折叠节点)时,可能存在某些节点(隐藏在另一个折叠节点下)被扩展的情况.没什么特别的 - 这很好.
JTree将扩展/折叠节点的记录保存在单独的expandedStateHashtable中,使用节点路径作为键,布尔值作为扩展状态值.因此,当折叠的父节点下的展开节点将变为可见时,它仍将被展开,因为在expandedStateHashtable中有true值的记录.
在屏幕截图中解释的情况...
1.展开root并在root下展开一些节点("glassfish4"文件夹):

2.折叠根:

3.再次展开root,我们仍然看到子节点("glassfish4"文件夹)已展开:

想象一下,我在屏幕截图#2时刻保存了树状态,当root崩溃时 - 问题是如果我想恢复所有树节点状态(即使是隐藏的状态),我也无法扩展另一个折叠节点下的节点,因为这将强制所有父节点展开.此外,我无法访问expandedStateHashtable直接在其中更改扩展状态,因为它在JTree中被声明为私有,并且没有很好的方法来访问它.所以我无法完全重现初始树状态.
所以我能做的是:
也许我错过了别的什么?
所以基本上问题是:
是否有任何其他方法来扩展子节点而不会导致父节点扩展?
您可以在下面找到我用来保存/恢复树状态的几个类.
只需调用TreeUtils.getTreeState(tree)以检索JTree状态并TreeUtils.setTreeState(tree,treeState)恢复JTree状态.请注意,树必须使用UniqueNode,否则这些方法将抛出ClassCastException - 如果您有自己的节点扩展DefaultMutableTreeNode,则可以简单地将DefaultMutableTreeNode替换为UniqueNode.
UniqueNode.java - 具有自己唯一ID的简单节点
public class UniqueNode extends DefaultMutableTreeNode implements Serializable
{
/**
* Prefix for node ID.
*/
private static final String ID_PREFIX = "UN";
/**
* Unique node ID.
*/
protected String id;
/**
* Costructs …Run Code Online (Sandbox Code Playgroud) 我知道有更好的方法可以做到这一点.
有什么更好的方法?
你如何在bash中对字符串变量进行字符串替换?
例如:(使用php因为这就是我所知道的)
$path = "path/to/directory/foo bar";
$path = str_replace(" ", "\ ", "$path");
echo $path;
Run Code Online (Sandbox Code Playgroud)
收益:
path/to/directory/foo\ bar
Run Code Online (Sandbox Code Playgroud) 我写了一个返回字符串的函数:
\n\nfunction! StatusBricks()\n let l:stat = Brick(statusbricks#ReportLinecount(\'raw\'), {\n \\ \'brick_color\': \'LineNr\',\n \\ \'delimiter_position\': \'right\',\n \\ \'delimiter_right\': \'\xe2\x9d\xaf\'\n \\ })\n return l:stat\nendfunction\nRun Code Online (Sandbox Code Playgroud)\n\n结果具有以下格式,由 生成Brick():
%#HighlightGroup#SomeData\nRun Code Online (Sandbox Code Playgroud)\n\n当我使用该函数作为状态行内的表达式时,我希望highlight group展开该函数以便为适当的状态行部分着色:
set statusline =%{StatusBricks()}\nRun Code Online (Sandbox Code Playgroud)\n\n但我得到的是状态栏字面显示%#HighlightGroup#ExpandedData而不是ExpandedData:
我究竟做错了什么?
\n在 script.sh 中,
source a.sh
source b.sh
CMD1
CMD2
CMD3
Run Code Online (Sandbox Code Playgroud)
如何source *.sh用它们的内容替换(不执行命令)?我想看看 bash 解释器在获取文件并扩展所有变量后执行什么。
我知道我可以使用set -n -v或运行bash -n -v script.sh 2>output.sh,但这不会替换源命令(如果 a.sh 或 b.sh 包含变量,则更少)。
我想过使用子shell,但这仍然没有扩展源代码行。我在源代码行之前和之后尝试了set +n +v和的组合set -n -v,但这仍然不起作用。
我将使用 ssh 将该输出发送到远程机器。我可以使用<<output.sh管道将内容传输到 ssh 命令中,但我无法以 root 身份登录到远程计算机,但我是 sudoer。因此,我想我可以创建脚本并将其作为 base64 编码的字符串发送(使用那个聪明的技巧)
base64 script | ssh remotehost 'base64 -d | sudo bash'
有解决办法吗?或者你有更好的主意吗?
嗨,大家好,
我需要在 Get() 方法[EnableQuery(MaxExpansionDepth=3)] 中进行设置以限制 OData 查询中的扩展深度。
我试图在 Get() 方法中设置此属性,但它不起作用。
你能给我一个建议吗?
按照:https : //github.com/OData/odata.net
非常感谢
body: Container(color: Colors.white,
child: SingleChildScrollView(
child : Column(
children : [
Padding(padding: EdgeInsets.only(left : 23.0, top: 23.0, right: 23.0, bottom: 5.0),
child : Text("Title", style: MyTextStyles.textNormal,)),
ListView.builder(
padding: EdgeInsets.only(left: 13.0, right: 13.0, bottom: 25.0),
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
itemCount: PersonModel.icData.length,
itemBuilder: (context, index) {
PersonModel _model = PersonModel.icData[index];
return Column(
children: <Widget>[
Divider(
height: 17.0,
color: MyColors.white,
),
ExpansionTile(
key: PageStorageKey<String>(index.toString()),
initiallyExpanded: false,
leading:
new ClipOval(
child: SvgPicture.asset(
_model.picture,
height: 57.0,
width: 57.0,
),
),
title: Text(_model.title,style: TextStyle(color: Color(0xFF09216B), fontFamily: …Run Code Online (Sandbox Code Playgroud)