![]() |
1
7
尽管我非常喜欢shell,但很可能是这样的:只要您在周围抛出任意的结构化数据,unix bourne/posix shell就不是正确的选择。
如果字段中没有出现字符,请用其中一个字符分隔。典型的例子是
如果使用一个可以处理字符串中nul字符的shell,那么在nul上连接和分离(通过$ifs或其他方式)可以很好地工作。但是一些常见的炮弹,包括bash,在核弹上破裂。一个测试会很老的。我的信号是:
即使这对您有用,您也已经达到了一个警告信号,即是时候切换到更结构化的语言(python、perl、ruby、lua、javascript……选择你喜欢的毒药)。您的代码很可能变得难以维护;即使您可以,也会有一小部分人能够很好地理解它并对其进行维护。 |
![]() |
2
11
在特殊情况下
您的值从不包含空格
,这个
但当然,只要其中一个值有一个空格,它就会断开。你可以修改
|
![]() |
3
9
这个问题是5年前发布的,但我有一些有趣的回答。我刚开始学bash,我也遇到了和你一样的问题。我认为这个技巧可能会有帮助:
当子进程无法将值发送回其父进程时,此技巧对于解决问题也很有用。 |
![]() |
4
2
为了不支持的bash版本
纳默夫
(在bash 4.3-alpha中引入)我可以定义helper函数,在该函数中,返回值被分配给给定的变量。有点像用
例1
示例2
|
![]() |
5
1
使用bash 4 eg可以使用关联数组
你可以把它们串起来。
当你需要使用这些返回值时,
|
![]() |
6
1
我会寻求解决办法 suggested here ,但改用数组变量。旧的bash:es不支持关联数组。 例如。,
呼叫地点:
|
![]() |
7
1
bash的更高版本支持
纳默夫
. 使用
下面是一些交互式命令行示例。 例1:
例2:
|
![]() |
8
1
还有另一种方式:
|
![]() |
9
0
shell脚本函数只能返回最后执行的命令的退出状态,或返回语句显式指定的该函数的退出状态。 返回字符串的一种方法可能是:
这可能会减少您的不适,尽管它增加了创建新外壳的开销,因此会稍微慢一些。 |
![]() |
Plankt0n · Shell,执行一个需要逐一遍历多个值的命令 7 月前 |
![]() |
Fin · 如何使用bash从表中提取数据 7 月前 |
![]() |
aenagy · Bash声明不喜欢带空格的值 7 月前 |
![]() |
PkDrew · AND运算符“&”在“&tee”中的作用是什么? 7 月前 |
![]() |
elbarna · 正则表达式仅排除小写字符串,但保存包含大写的字符串 8 月前 |
![]() |
Harry · 使用“$!”获取后台作业的pid 8 月前 |
![]() |
nmr · 使用来自另一个shell脚本的if语句的返回码函数 8 月前 |
![]() |
minseong · Git sed忽略二进制文件 11 月前 |
![]() |
Jesper.Lindberg · 检查参数是否包含null 11 月前 |