小编pro*_*eek的帖子

带有 bash 的多路径环境变量设置行

我有很长的export PATH=A:B:C ...。我可以制作多行以如下更有条理吗?

export PATH = A:
              B:
              C:
Run Code Online (Sandbox Code Playgroud)

bash path environment-variables

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

仅在子目录内的特定文件中查找字符串

假设我需要GetTypes()在所有 C# 源文件 ( .cs) 目录/子目录中找到该函数。

我用过grep -rn GetTypes *.cs,但是我遇到了一个错误grep: *.cs: No such file or directory。我不得不使用grep -rn GetTypes *,但在这种情况下,它不仅显示了所有文件*.cs

我需要使用什么命令才能仅在.cs文件中查找字符串?

grep recursive wildcards

12
推荐指数
3
解决办法
6万
查看次数

如何拆分 $0 变量以在 bash 中查找目录和相对路径?

$0 变量包含脚本的路径信息。

  • 如何将路径信息更改为绝对路径?我的意思是如何处理 ~, ., .. 或类似的?
  • 如何将路径信息拆分为目录和文件名?

我可以为此使用 python/perl,但如果可能,我想使用 bash。

bash parameter

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

bash PS1 设置

我正在尝试按如下方式配置 PS1。

绿色="\[\e[32;1m\]"
红色="\e[0;31m"
紫色="\e[0;35m"
STARTCOLOR="\[\e[40m\]"
ENDCOLOR="\[\e[0m\]"
导出 PS1="$STARTCOLOR$Green\u@$Purple\h $Red\w$Green>$ENDCOLOR"

我有一些问题。

  • "[\e[32;1m]" 和 \e[32;1m" 有什么区别?它们一样吗?
  • 运行“export PS1”命令后,它运行良好,但是当我输入大约 20 个字符时,我附加的字符会被覆盖。这有什么问题?
  • STARTCOLOR(\e[40m)/ENDCOLOR(\e[0m)] 是什么意思?

http://a.imageshack.us/img8/606/resultqm.jpg

添加

经过一些测试,我得到以下更改可以解决问题。即,“\e”格式应替换为“\[\e”格式。

Red="\\e[1;31m" -- 不工作
Red="\[\e[1;31m\]" -- 工作

bash prompt

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

如何同时杀死进程和子进程?

我问 了一个问题,想知道如何从 Python 的 subprocess 模块中获取多行消息。

问题是在测试过程中,我不得不杀死运行gnuchess进程的python进程。在命令行中使用 ^c 似乎会杀死 python 进程,但不会杀死 gnuprocess。

为了杀死 gnuchess,我使用ps aux获取 pid | grep gnuchess并运行kill -9 PID。是否有其他方法可以同时杀死 python 和 gnuchess 进程?

process kill

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

符号链接和硬链接问题

假设 /A/B/c.sh 是符号链接到 /X/Y/c.sh。

  • 如果 c.sh 有命令“./SOMETHING”,'.' 是指 /A/B/ 还是 /X/Y/?
  • 硬链接呢?

hard-link symlink

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

一个进程的返回值和数量的比较

我有一个val.py返回负数的python 脚本。

import sys
sys.exit(-1234)
Run Code Online (Sandbox Code Playgroud)

当我运行这个 bash 脚本时,我得到的值$?是 46(不是 -1234)的返回值。即使我尝试将值与$? == 46or进行比较$? == "46",它也根本不起作用。

python val.py
echo $?

if [ $? == 46 ]; then
    echo "Match"
else
    echo "NO"
fi
Run Code Online (Sandbox Code Playgroud)
  • Q1:为什么返回值没有正确存储在$?
  • Q2:为什么是$?== NUM​​BER 比较不起作用?

process exit

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

创建文件时设置默认权限

创建文件时,权限为644(用户rw,组r,其他r)。如何使生成的默认文件具有 664 的权限?

users permissions umask

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

继续跟踪符号链接?

我经常使用符号链接,但是在移动原始文件后,我失去了符号链接的踪迹。我还使用符号链接来跟踪同一目录中的某些文件,但同样,我迷失了方向。

  • 无论我做了什么更改,有没有办法(工具/方法)来跟踪符号链接?硬链接是唯一的方法吗?
  • 有没有办法以相对方式制作符号链接,以便当我移动包含原始链接和链接的目录时,链接应该可以工作。

hard-link symlink

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

如何使用grep获取包含-R的行

如何在带有grep的文件中找到“-R”?我试图grep "-R" *.GNU获取包含 -R 的行,但它什么都不返回。

grep

3
推荐指数
2
解决办法
1726
查看次数

find 命令中引号的区别

当我有一个嵌套目录find . -name "*.py" -print命令时,我会得到当前目录下的所有 python 脚本。但是,find . -name *.py -print仅返回当前目录中的 python 脚本。

这是预期的行为吗?是什么造成了这种差异?我使用 Mac OS X 10.7。

command-line find

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