小编von*_*otz的帖子

在 Linux 中,是否有处理文件打开的系统层/脚本?

在 Linux 中,是否有一个层/脚本来处理打开文件的程序请求?

就像你在 bash: 中打开文件描述符一样:exec 3 <>/documents/foo.txt或者你的文本编辑器打开/documents/foo.txt

我不敢相信一个编辑器可以“打开一个文件”自己进行读/写访问。

我宁愿想象这是对“层”(init.d 脚本?)的请求,它可以从只打开一定数量的文件开始,并通过它们的访问类型,通过它们是什么进程保持打开文件的标签打开等

linux files

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

在 bash 的 for 循环中,计数器变量是局部的还是全局的?

在成语中

for i in $directories; do
  # ...
done
Run Code Online (Sandbox Code Playgroud)

...变量是$i局部的还是全局的?

如果碰巧有一个同名的全局变量怎么办。bash 是否与全局变量或for ... in ...标头之一一起使用?

bash for

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

如何通过分隔符拆分字符串导致未知数量的部分,以及如何将结果收集到数组中?

我需要处理一些包含路径的字符串。如何将这样的字符串拆分/为分隔符,导致路径部分数量未知,最后我如何提取生成的路径部分?

cut显然不是首选工具,因为它需要您事先知道零件的数量,而且它也不会输出每个零件以便我可以使用readarraymapfile将它们收集到数组中。

bash array bash-array

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

Bash:使用awk等对由空格分隔的字符串中的版本号进行排序

例如,我如何对字符串进行排序

 "1.3.2 1.3.1 1.2.3 1.1.1.5"
Run Code Online (Sandbox Code Playgroud)

"1.1.1.5 1.2.3 1.3.1 1.3.2"
Run Code Online (Sandbox Code Playgroud)

所以我不知道版本包含多少个数字,也不知道字符串中有多少个版本。

如何解决这个问题?

谢谢

bash sort

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

在同一个 CWD 中查找使用正则表达式而不是从另一个目录中查找

我有一个 find 命令,我想从一个任意目录发出它,用一个$directory变量代替.当前工作目录的点。

这是什么工作

  • 示例 1
find $directory -maxdepth 1 -type d -name "test*"
Run Code Online (Sandbox Code Playgroud)

这给了我一些结果。

这也有效

  • 示例 2
find . -maxdepth 1 -type d -regextype posix-extended -regex "^./[a-zA-Z0-9]+([-_]?[a-zA-Z0-9]+)*-[0-9]{1,3}(.[0-9]{1,3}){,3}\$"
Run Code Online (Sandbox Code Playgroud)

但是,$directory它不起作用。请注意,我删除./了正则表达式开头的 。

  • 示例 3
find $directory -maxdepth 1 -type d -regextype posix-extended -regex "^[a-zA-Z0-9]+([-_]?[a-zA-Z0-9]+)*-[0-9]{1,3}(.[0-9]{1,3}){,3}\$"
Run Code Online (Sandbox Code Playgroud)

为什么呢?

谢谢

bash find regular-expression

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

Bash - 如何通过多行在终端中定义函数?

如何通过多行在终端中定义函数?

# this doesn't work
function my_func { \
  echo "number 5" \
}
Run Code Online (Sandbox Code Playgroud)

非常基本。还是讨厌。

bash

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

测试表达式中的参数扩展是否可能?

当我在中尝试以下表达式时,bash收到一条奇怪的错误消息:

[: -lt: unary operator expected
Run Code Online (Sandbox Code Playgroud)

首先是函数定义

some_func () {
  (( 3 + 5 ))
}
Run Code Online (Sandbox Code Playgroud)

还有表情

[ $(some_func) -lt 10 ] && true
Run Code Online (Sandbox Code Playgroud)

我想问题是将运算符-lt与命令替换和/或算术扩展混合在一起?

退出代码$?为 2,消息为an unary op was expected

bash arithmetic command-substitution test

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

Bash:如何在条件构造中使用自定义函数(返回 true 或 false)?

我该如何正确地使用自定义的方法是测试参数,例如,如果一个字符串是一个单词,或者一个版本号,在有条件的情况下ifwhileuntil声明?

特别是(双)大括号似乎在测试一侧的方法上存在问题,例如-gt.

我可以只调用一个方法吗?如果是,那么这样做的上下文要求是什么?所以在(双)括号的内部/外部以及不同的语句中ifwhile以及until- 他们如何在没有命令替换的情况下对调用函数做出反应?

如果我不使用命令替换来调用不同的测试方法,我还可以通过布尔运算符连接它们吗?

对于它们的连接,是否存在必须使用括号或双括号的用例?

我什么时候需要命令扩展?我有时需要算术扩展来调用函数吗?

bash

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