javascript

git

java

python

git-remote

c++

github

django

c#

reactjs

spring-mvc

reflection

javascript-objects

html5

analytics

node.js

performance

branch-prediction

git-commit

git-revert

如何使用Shell命令启动Genymotion设备?

我需要通过shell命令启动genymotion,有人知道是否可以这样做?

trans by 2020-08-12T09:22:26Z

为什么我看不到大多数高级语言的管道运算符?

在Unix Shell编程中,管道运算符是一个非常强大的工具。 使用少量的核心实用程序,系统语言(如C)和脚本语言(如Python),您可以构建极其紧凑且功能强大的Shell脚本,这些脚本将由操作系统自动并行化。

显然,这是一个非常强大的编程范例,但是我没有将管道视为除Shell脚本之外的任何语言的第一类抽象。 使用管道复制脚本功能所需的代码似乎总是很复杂。

所以我的问题是,为什么在现代高级语言(如C#,Java等)中看不到类似于Unix管道的东西? 是否有支持一流管道的语言(shell脚本除外)? 这是一种表达并发算法的方便,安全的方法吗?

以防万一有人提出它,我看了看F#管道转发运算符(forward pipe operator),它看起来更像是函数应用程序运算符。 据我所知,它对数据应用了一个函数,而不是将两个流连接在一起,但是我可以接受更正。

后记:在研究实现协程的同时,我意识到存在某些相似之处。 马丁·沃尔夫(Martin Wolf)在一篇博客文章中描述了一个与我类似的问题,只是用协程而不是管道。

trans by 2020-08-12T06:57:47Z

linux-如何在shell脚本中向文件添加行?

我想在现有的CSV文件中添加一行标题,并进行就地编辑。 我怎样才能做到这一点?

echo 'one, two, three' > testfile.csv

我想结束

column1, column2, column3
one,     two,     three

更改初始CSV输出不方便。

任何标准命令都可以。 重要的是,文件已就地编辑,并且该行插入到文件的开头。

trans by 2020-08-12T05:54:40Z

linux-以qsub开头的shell脚本的参数

如何参数化在网格上执行的shell脚本(以qsub开头)? 我有一个Shell脚本,在这里我使用getopts读取参数。

当我启动(qsub script.sh -r firstparam -s secondparam ..)这个带有qsub的工作脚本时,我收到错误消息,

qsub:无效选项-s

qsub:非法-r值

正如qsub认为该参数本身就是。 但是我还没有找到任何解决方案。

谢谢

trans by 2020-08-11T10:52:51Z

bash-通过同时/并发文件传输来加速rsync?

我们需要尽快将/main/files/2的数据从一台服务器传输到另一台服务器。 我们目前使用的是/main/files/2,但是当我们的网络具有900+Mb/s(已通过iperf测试)时,我们得到的速度仅为/main/files/3。 我已经对磁盘,网络等进行了测试,发现只是rsync一次仅传输一个文件,这导致了速度下降。

我发现一个脚本为目录树中的每个文件夹运行不同的rsync(允许您限制为x数),但是我无法使其正常运行,它仍然一次只运行一个rsync。

我在这里找到了/main/files/2(复制如下)。

我们的目录树是这样的:

/main
   - /files
      - /1
         - 343
            - 123.wav
            - 76.wav
         - 772
            - 122.wav
         - 55
            - 555.wav
            - 324.wav
            - 1209.wav
         - 43
            - 999.wav
            - 111.wav
            - 222.wav
      - /2
         - 346
            - 9993.wav
         - 4242
            - 827.wav
      - /3
         - 2545
            - 76.wav
            - 199.wav
            - 183.wav
         - 23
            - 33.wav
            - 876.wav
         - 4256
            - 998.wav
            - 1665.wav
            - 332.wav
            - 112.wav
            - 5584.wav

因此,我想为/ main / files中的每个目录创建一个rsync,一次最多创建5个。 因此,在这种情况下,将运行3个rsync,分别是/main/files/2/main/files/2/main/files/3

我像这样尝试过,但是它一次只为/main/files/2文件夹运行1个rsync:

#!/bin/bash

# Define source, target, maxdepth and cd to source
source="/main/files"
target="/main/filesTest"
depth=1
cd "${source}"

# Set the maximum number of concurrent rsync threads
maxthreads=5
# How long to wait before checking the number of rsync threads again
sleeptime=5

# Find all folders in the source directory within the maxdepth level
find . -maxdepth ${depth} -type d | while read dir
do
    # Make sure to ignore the parent folder
    if [ `echo "${dir}" | awk -F'/' '{print NF}'` -gt ${depth} ]
    then
        # Strip leading dot slash
        subfolder=$(echo "${dir}" | sed 's@^\./@@g')
        if [ ! -d "${target}/${subfolder}" ]
        then
            # Create destination folder and set ownership and permissions to match source
            mkdir -p "${target}/${subfolder}"
            chown --reference="${source}/${subfolder}" "${target}/${subfolder}"
            chmod --reference="${source}/${subfolder}" "${target}/${subfolder}"
        fi
        # Make sure the number of rsync threads running is below the threshold
        while [ `ps -ef | grep -c [r]sync` -gt ${maxthreads} ]
        do
            echo "Sleeping ${sleeptime} seconds"
            sleep ${sleeptime}
        done
        # Run rsync in background for the current subfolder and move one to the next one
        nohup rsync -a "${source}/${subfolder}/" "${target}/${subfolder}/" </dev/null >/dev/null 2>&1 &
    fi
done

# Find all files above the maxdepth level and rsync them as well
find . -maxdepth ${depth} -type f -print0 | rsync -a --files-from=- --from0 ./ "${target}/"
trans by 2020-08-11T07:03:18Z

bash-shell用comm替换cr \ lf

我有input.txt

1
2
3
4
5

我需要得到这样的output.txt

1,2,3,4,5

怎么做?

trans by 2020-08-10T16:45:58Z

如何用Ruby覆盖shell中的打印行?

如何用Ruby覆盖Unix shell中以前打印的行?

假设我想每秒在shell上输出当前时间,但是我不想覆盖每个时间字符串,而是要覆盖以前显示的时间。

trans by 2020-08-08T14:57:33Z

macos-获取Scala插入

我是Scala的新手。 我已经下载了它,并且可以在Eclipse上对其进行开发; 但我无法使其在Terminal中工作。

所有网站和书籍都说只能输入scala-这是行不通的。

该网站真气地说:

我们假设Scala软件和用户环境都是 正确设置。

我该怎么做?

我对此很陌生,使用Jargon或假设对Scala的框架了解过多,将会破坏良好的响应。 请保持简单。

  • Mac OS X(10.6.7)
  • 规模:2.9.0.1

谢谢

trans by 2020-08-07T05:55:10Z

bash-如何等待使用netcat的开放端口?

我正在尝试用jenkins做一个自定义的dockerfile。 我要等到8080端口打开,而不是用netcat做一个丑陋的“ sleep 60”,但是对bash脚本和netcat不太有信心。

这是我要执行的操作的一个示例:

#!/bin/bash

opened=0

while [ "$opened"  == "0" ]; do
  echo "Waiting jenkins to launch on 8080..."
  nc -vz localhost 8080
done

echo "Jenkins launched"
trans by 2020-08-06T01:55:56Z

在Linux上从命令队列进行并行处理(bash,python,ruby等)

我有200条命令的列表/队列,我需要在Linux服务器上的Shell中运行。

我只希望一次最多运行10个进程(从队列中)。 一些过程将花费几秒钟来完成,而其他过程将花费更长的时间。

当进程完成时,我希望从队列中“弹出”下一条命令并执行。

有没有人有代码来解决这个问题?

进一步阐述:

在某种队列中,需要完成200项工作。 我希望一次最多进行10项工作。 当线程完成一项工作时,应向队列询问下一项工作。 如果队列中没有其他工作,则该线程应终止。 当所有线程都死掉时,这意味着所有工作都已经完成。

我要解决的实际问题是使用imapsync将200个邮箱从旧邮件服务器同步到新邮件服务器。 有些用户的邮箱很大,需要很长时间才能同步,而其他用户的邮箱很小,可以很快同步。

trans by 2020-08-05T19:49:33Z

shell-Ubuntu上安装了什么版本的MongoDB

嗨,我有点外壳n00b。

谁能告诉我如何检查Linux Ubuntu计算机上安装的MongoDB版本?

我看到我的MongoDB Shell版本:1.2.2,所以我很确定MongoDB本身也已经过时了。 有人知道“如何更新MongoDB”文档吗? 我发现mongodb.org有点令人困惑。

谢谢,麻烦您了。


好吧,如果我在mongo shell中使用db.version(),它说1.2.2

如果我$ mongod --version我得到这个:

db version v1.2.2, pdfile version 4.5
Wed Oct 16 10:28:22 git version: nogitversion

我跑了

sudo apt-get update
sudo apt-get install mongodb

并得到

sudo apt-get install mongodb
Reading package lists... Done
Building dependency tree       
Reading state information... Done
mongodb is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 179 not upgraded.

mongod --version
db version v1.2.2, pdfile version 4.5
Wed Oct 16 10:31:07 git version: nogitversion

那么为什么不更新呢? apt-get是否指向错误的回购/来源?

trans by 2020-08-05T07:59:07Z

bash-从.bash_profi中获取目录中的所有文件

我需要允许几个应用程序附加到系统变量(在这种情况下为$ PYTHONPATH)。 我正在考虑指定一个目录,每个应用程序都可以在其中添加模块(例如.bash_profile_modulename)。 在〜/ .bash_profile中尝试过类似的操作:

find /home/mike/ -name ".bash_profile_*" | while read FILE; do
source "$FILE"
done;

但它似乎不起作用。

trans by 2020-08-01T07:46:49Z

linux-在Unix上按行/字段计数字符的出现

给定一个包含这样数据的文件(即stores.dat文件)

sid|storeNo|latitude|longitude
2tt|1|-28.0372000t0|153.42921670
9|2t|-33tt.85t09t0000|15t1.03274200

返回每行出现“ t”字符的次数的命令是什么?

例如。 会返回:

count   lineNum
   4       1
   3       2
   6       3

此外,要按字段计数发生次数,返回以下结果的命令是什么?

例如。 输入第2列和字符“ t”

count   lineNum
   1       1
   0       2
   1       3

例如。 输入第3列和字符“ t”

count   lineNum
   2       1
   1       2
   4       3
trans by 2020-07-31T02:27:42Z

bash-从脚本在后台执行shell命令

如果命令在字符串中,如何在bash脚本中在后台执行shell命令?

例如:

#!/bin/bash
cmd="nohup mycommand";
other_cmd="nohup othercommand";

"$cmd &";
"$othercmd &";

这行不通-我该怎么做?

trans by 2020-07-30T21:05:25Z

bash-sudo cat << EOF>文件不起作用,sudo su起作用

我在bash的命令提示符下尝试了以下操作:

sudo cat << EOF > /etc/yum.repos.d/some-name.repo
#Content
#....
#...
EOF

它抱怨:

-bash: /etc/yum.repos.d/some-name.repo: Permission denied

然后我做了sudo su,并尝试了与cat之前的sudo完全相同的东西,并且它没有任何问题。 我在上面缺少什么?

trans by 2020-07-30T11:18:46Z

git为每个comm运行shell命令

我想遍历一系列提交并对每个提交执行一个shell命令。 如果命令失败,我希望步行停止,否则继续前进。 我查看了filter-branch,但我不想重写提交,只需将它们检出即可。 for-each-ref似乎不允许您指定要作用的范围。

我的具体问题是,我创建了一堆提交,并且我想确保每个提交都是可构建的。 我想做类似的事情:

git foreach origin/master..master 'git submodule update && make clean && make'

我当然可以编写一个shell脚本来执行此操作,但是git可能有一种不错的方法。

trans by 2020-07-30T04:36:53Z

linux-尝试使用sud将文件追加到根拥有的文件时,权限被拒绝

当我尝试使用sudo将文件中的数据附加到另一个文件时,这是导致“权限被拒绝”的shell命令:

sudo cat add_file >> /etc/file

/etc/file(即我)所拥有的文件为/etc/file,其权限为rw-r--r--。我是否应该暂时成为root以使其起作用,或者sudo是否有解决方法?

trans by 2020-07-29T17:21:07Z

shell-在bash脚本中,如何清理用户输入?

我正在寻找进行简单输入的最佳方法:

echo -n "Enter a string here: "
read -e STRING

并通过删除非字母数字字符,小写(大写)并用下划线替换空格来清理它。

顺序重要吗? tr是解决此问题的最佳/唯一方法吗?

trans by 2020-07-29T16:21:30Z

如何在Bash中将数组作为参数传递给函数

众所周知,在bash编程中,传递参数的方式是"${a[*]}",...,"${a[@]}"。但是,我发现将数组作为参数传递给接收多个参数的函数并不容易。 这是一个例子:

f(){
 x=($1)
 y=$2

 for i in "${x[@]}"
 do
  echo $i
 done
 ....
}

a=("jfaldsj jflajds" "LAST")
b=NOEFLDJF

f "${a[@]}" $b
f "${a[*]}" $b

如上所述,函数"${a[*]}"接收两个参数:第一个参数分配给数组的"${a[@]}",第二个参数分配给y

"${a[*]}"可以通过两种方式调用。 第一种方法使用"${a[@]}"作为第一个参数,结果是:

jfaldsj 
jflajds

第二种方法使用"${a[*]}"作为第一个参数,结果为:

jfaldsj 
jflajds 
LAST

两种结果都不如我所愿。 那么,有没有人知道如何正确地在函数之间传递数组?

trans by 2020-07-29T13:15:42Z

bash-在Unix中获取完整路径中的文件名

我正在尝试使用Unix命令从/this/is/could/be/any/path/abc.txt中获取"abc.txt"。请注意/this/is/could/be/any/path是动态的。

任何想法?

提前致谢。

trans by 2020-07-29T12:09:03Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共38页