标签: shell

在Python中调用外部命令

如何在Python脚本中调用外部命令(就像我在Unix shell或Windows命令提示符下键入它一样)?

python shell terminal command subprocess

4553
推荐指数
57
解决办法
325万
查看次数

检查shell脚本中是否存在目录

在shell脚本中,可以使用什么命令来检查目录是否存在?

unix shell posix

3556
推荐指数
34
解决办法
271万
查看次数

如何在Bash中连接字符串变量

在PHP中,字符串连接在一起如下:

$foo = "Hello";
$foo .= " World";
Run Code Online (Sandbox Code Playgroud)

在这里,$foo成为"Hello World".

在Bash中如何实现?

syntax bash shell concat string-concatenation

2624
推荐指数
25
解决办法
343万
查看次数

如何使用scp将文件夹从远程复制到本地?

如何使用scp?将文件夹从远程复制到本地主机?

ssh用来登录我的服务器.
然后,我想将远程文件夹复制foo到本地/home/user/Desktop.

怎么做到这一点?

shell command-line scp copy

2562
推荐指数
11
解决办法
220万
查看次数

在shell中,"2>&1"是什么意思?

在Unix shell中,如果我想要组合stderrstdout进入stdout流进行进一步操作,我可以在命令的末尾添加以下内容:

2>&1
Run Code Online (Sandbox Code Playgroud)

所以,如果我想head在输出上使用g++,我可以这样做:

g++ lots_of_errors 2>&1 | head
Run Code Online (Sandbox Code Playgroud)

所以我只能看到前几个错误.

我总是很难记住这一点,而且我不得不去查阅它,主要是因为我不完全理解这个特殊技巧的语法.

有人可以打破这个并按字符解释具体2>&1 意义吗?

unix bash shell redirect

2121
推荐指数
16
解决办法
103万
查看次数

如何在Bash中的分隔符上拆分字符串?

我把这个字符串存储在一个变量中:

IN="bla@some.com;john@home.com"
Run Code Online (Sandbox Code Playgroud)

现在我想通过;分隔符拆分字符串,以便我有:

ADDR1="bla@some.com"
ADDR2="john@home.com"
Run Code Online (Sandbox Code Playgroud)

我不一定需要ADDR1ADDR2变量.如果它们是阵列的元素甚至更好.


根据以下答案的建议,我最终得到了以下内容,这就是我所追求的:

#!/usr/bin/env bash

IN="bla@some.com;john@home.com"

mails=$(echo $IN | tr ";" "\n")

for addr in $mails
do
    echo "> [$addr]"
done
Run Code Online (Sandbox Code Playgroud)

输出:

> [bla@some.com]
> [john@home.com]
Run Code Online (Sandbox Code Playgroud)

有一个涉及设置Internal_field_separator(IFS)的解决方案;.我不确定该答案发生了什么,你如何重置IFS为默认值?

RE:IFS解决方案,我试过这个并且它可以工作,我保持旧的IFS然后恢复它:

IN="bla@some.com;john@home.com"

OIFS=$IFS
IFS=';'
mails2=$IN
for x in $mails2
do
    echo "> [$x]"
done

IFS=$OIFS
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我试过的时候

mails2=($IN)
Run Code Online (Sandbox Code Playgroud)

我只是在循环打印时得到第一个字符串,没有括号围绕$IN它工作.

bash shell scripting split

1885
推荐指数
22
解决办法
204万
查看次数

如果目录尚不存在,如何mkdir?

我正在编写一个shell脚本,在AIX上的KornShell(ksh)下运行.我想使用该mkdir命令创建一个目录.但目录可能已经存在,在这种情况下我不想做任何事情.因此,我想测试以查看该目录不存在,或者抑制在mkdir尝试创建现有目录时抛出的"File exists"错误.

有关如何最好地做到这一点的任何想法?

shell scripting aix ksh mkdir

1784
推荐指数
16
解决办法
104万
查看次数

如何基于通配符匹配以递归方式查找当前和子文件夹中的所有文件?

如何基于通配符匹配以递归方式查找当前和子文件夹中的所有文件?

linux shell

1695
推荐指数
17
解决办法
221万
查看次数

删除包含特定字符串的文本文件中的行

我如何使用sed删除包含特定字符串的文本文件中的所有行?

shell sed in-place text-parsing

1670
推荐指数
13
解决办法
168万
查看次数

如何递归计算目录中的所有代码行?

我们有一个PHP应用程序,并希望计算特定目录及其子目录下的所有代码行.我们不需要忽略评论,因为我们只是想弄清楚.

wc -l *.php 
Run Code Online (Sandbox Code Playgroud)

该命令在给定目录中运行良好,但忽略子目录.我当时认为这可行,但它正在返回74,绝对不是这样......

find . -name '*.php' | wc -l
Run Code Online (Sandbox Code Playgroud)

提供所有文件的正确语法是什么?

bash shell

1536
推荐指数
23
解决办法
73万
查看次数