小编pyn*_*exj的帖子

为什么bash参数扩展会导致rsync命令以不同的方式运行?

我正在尝试运行rsync命令,将文件复制到新位置.如果我直接运行rsync命令,在命令行上没有任何参数扩展,rsync就能达到我的预期

$ rsync -amnv --include='lib/***' --include='arm-none-eabi/include/***' \
  --include='arm-none-eabi/lib/***' --include='*/' --exclude='*' \
  /tmp/from/ /tmp/to/

building file list ... done
created directory /tmp/to
./
arm-none-eabi/
arm-none-eabi/include/
arm-none-eabi/include/_ansi.h
...
arm-none-eabi/lib/
arm-none-eabi/lib/aprofile-validation.specs
arm-none-eabi/lib/aprofile-ve.specs
...
lib/
lib/gcc/
lib/gcc/arm-none-eabi/
lib/gcc/arm-none-eabi/4.9.2/
lib/gcc/arm-none-eabi/4.9.2/crtbegin.o
...

sent 49421 bytes  received 6363 bytes  10142.55 bytes/sec
total size is 423195472  speedup is 7586.32 (DRY RUN)
Run Code Online (Sandbox Code Playgroud)

但是,如果我将过滤器参数括在变量中,并使用该变量调用该命令,则会观察到不同的结果. rsync复制了我期望的许多额外目录:

$ FILTER="--include='lib/***' --include='arm-none-eabi/include/***' \
  --include='arm-none-eabi/lib/***' --include='*/' --exclude='*'"
$ rsync -amnv ${FILTER} /tmp/from/ /tmp/to/

building file list ... done
created directory /tmp/to
./ …
Run Code Online (Sandbox Code Playgroud)

bash rsync

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

期望 - expect_user的不同超时和期望?

我希望有一个无限(或非常大)的超时expect_user和默认超时expect.有没有办法设置不同的超时?或者我只需要在每次使用更改之前手动执行此操作?

expect

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

如何使用 CLI bq 命令创建一次性数据集副本(无计划重复)

我想使用 bash 脚本在 BigQuery 中制作一次性数据集复制,从source_dataset_Atarget_dataset_B

这个操作在BigQuery Console中很容易完成,就像这样 在此输入图像描述

但是,如果我bq mk --transfer_config像下面那样使用,它将创建一个具有定期计划(“每 24 小时”)的数据集复制传输作业。

bq mk --transfer_config --project_id=data-project --data_source=cross_region_copy \
  --display_name='one-time-dataset-copy' \
  --target_dataset=target_dataset_B \
  --params='{"source_dataset_id":"source_dataset_A","source_project_id":"source_project","overwrite_destination_table":"true"}' \
Run Code Online (Sandbox Code Playgroud)

如何在 BigQuery 中进行一次性数据集复制?

google-bigquery

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

用vim中的替换替换C语句

我想使用vim的替换函数(:%s)来搜索和替换某种代码模式.例如,如果我有类似于以下代码:

if(!foo)
Run Code Online (Sandbox Code Playgroud)

我想用以下代替:

if(foo == NULL)
Run Code Online (Sandbox Code Playgroud)

然而,foo只是一个例子.变量名可以是任何名称.

这是我为我的vim命令提出的:

:%s/if(!.*)/if(.* == NULL)/gc
Run Code Online (Sandbox Code Playgroud)

它正确搜索语句,但它试图用".*"而不是那里的变量(即"foo")替换它.有没有办法用vim做我要问的事情?

如果没有,是否还有其他编辑器/工具可以帮我修改这些?

提前致谢!

vi vim

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

bash中的-z是什么

我试图理解以下代码:

if [ -z "$1" ] || [ -z "$2" || [ "${3:-}" ]
then
  echo "Usage: $0 <username> <password>" >&2
  exit 1
fi
Run Code Online (Sandbox Code Playgroud)

我想了解我们的意思-z "$1",并"${3:-}"在代码中。还请帮助我>&2在代码中理解。

linux bash shell

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

在 Unix 域套接字上调用 open() 失败,并出现错误“没有此类设备或地址”

我正在尝试在 Linux 中使用命名管道在 NodeJS 和 C 程序之间进行通信。我的服务器程序是用 NodeJS 编写的:

'use strict';

const net = require('net');
const pipename = '/tmp/pipe1';
const fs = require('fs');

let server = net.createServer(function(socket){
        console.log('A new connection');
        socket.on('data',function(data){
                console.log(data.toString());
        });
        socket.on('end',function(){
                console.log('Closed connection');
        });
});

server.on('error',console.log);

fs.unlink(pipename,function(){
        server.listen(pipename);
})

//Test unix-socket server:
setInterval(function(){
        var stream = net.connect(pipename);
        stream.on('error',console.log);
        stream.write('hello');
        stream.end();
},2000);
Run Code Online (Sandbox Code Playgroud)

但是,当我想在 NodeJS 服务器已经启动后打开 C 内部的管道时,我收到错误:

const char* pipename = "/tmp/pipe1";
int hPipe = open(pipename, O_WRONLY); //Error: No such device or address
Run Code Online (Sandbox Code Playgroud)

当我尝试去做时echo 'Hello World!' > …

c++ bash ipc unix-socket node.js

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

Android onActivityResult - RESULT_OK的值

在下面的代码中,它经过b=了最里面的块的赋值:

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 1) {
        if (resultCode == RESULT_OK) {
            // update the contact list
            Bundle b = data.getExtras();
Run Code Online (Sandbox Code Playgroud)

我得到bnull.所以,我想调试和resultCode显示为-1调试器.问题是,RESULT_OK价值应该是否定的?

android android-activity

0
推荐指数
1
解决办法
7462
查看次数

"-r"在Expect的"expect -r PATTERN"命令中的含义是什么?

我查看了Expect手册页并用Google搜索了它,但我还没有找到-r期望的内容.我之前看过这个选项

expect -r "\r\n\r\n"
Run Code Online (Sandbox Code Playgroud)

expect脚本中,但无法弄清楚它是什么.有谁知道我在哪里可以找到这个答案?提前致谢

linux options expect

0
推荐指数
1
解决办法
377
查看次数

量角器中的Element.getText()

我想编写一个测试用例,在其中我将前一页中单击的元素的值与当前页面中元素值的值进行比较.

我使用以下代码 -

validateText = SoftwaresUnmappedPage_POM.checkFirstSoftwareName.getText();

expect(validateText+"*").toBe(SoftwareSummary_POM.softwareName.getText());
Run Code Online (Sandbox Code Playgroud)

例如 - 如果我单击按钮(ABC),则会加载页面.此页面包含指示我单击的元素的元素.但它将名称显示为ABC*.所以我想验证我点击的元素和我登陆的页面是否相同.

导致错误 - 预期'[object Object] '为'ABC '.

有人可以帮我解决这个问题吗?谢谢.

javascript testing gettext protractor

0
推荐指数
1
解决办法
2462
查看次数

如何评估语句*ptr1 ++ =*ptr2 ++?

我想知道如何实际评估以下声明,它究竟做了什么?

*ptr1++ = *ptr2++;
Run Code Online (Sandbox Code Playgroud)

它首先分配指针指向的值,然后递增吗?

是否与撰写以下内容相同;

*ptr1 = *ptr2
ptr1++;
ptr2++;
Run Code Online (Sandbox Code Playgroud)

等号是否实际上具有比增量符号(++)更高的优先级?

谢谢您的帮助.

c

0
推荐指数
1
解决办法
163
查看次数

terminfo(5) 中的 cursor_up (cuu1) 和 key_up (kcuu1) 有什么区别?

在 terminfo(5) 中:

   Variable String               Capname    TCapCode  Description
   ---------------------------------------------------------------
   cursor_up                     cuu1       up        up one line
   key_up                        kcuu1      ku        up-arrow key
Run Code Online (Sandbox Code Playgroud)

我尝试使用 tput 并且它们产生相同的输出:

[STEP 102] # tput cuu1 | hd -C
00000000  1b 5b 41                                          |.[A|
00000003
[STEP 103] # tput kcuu1 | hd -C
00000000  1b 5b 41                                          |.[A|
00000003
[STEP 104] #
Run Code Online (Sandbox Code Playgroud)

unix terminal ncurses terminfo tput

0
推荐指数
1
解决办法
386
查看次数

string(int), string(int32) and string([]int32) are all valid but string([]int) is invalid - what's the rationale here?

(I'm using Go 1.14.6.)

The following statements would all output the char a

Println(string(int(97) ) )
Println(string(int32(97) ) )
Println(string([]int32{97} ) )
Run Code Online (Sandbox Code Playgroud)

But

Println(string([]int{97} ) )
Run Code Online (Sandbox Code Playgroud)

would cause compile error

cannot convert []int literal (type []int) to type string
Run Code Online (Sandbox Code Playgroud)

The behavior is confusing to me. If it handles string(int) the same as string(int32), why it handles string([]int) different from string([]int32)?

string go slice rune

0
推荐指数
1
解决办法
159
查看次数

对于int8 var,如何理解“-128 / -1”和“-128 * -1”的结果是-128?

几周前刚开始学习 Go,这种行为让我很困惑。

var n int8 = -128

n /= -1
fmt.Println(n)

n *= -1
fmt.Println(n)
Run Code Online (Sandbox Code Playgroud)

上面的代码都会输出-128. 我也试过-64 * -2这也导致-128.

值是否-128特殊,这意味着这里的int溢出

go

-1
推荐指数
1
解决办法
72
查看次数