小编Ale*_*ill的帖子

使用命令输出中的带引号的条目在Bash中创建数组

我在从标准输出中形成bash数组时遇到问题.我把它归结为这个最小的例子:

~$ a=($(echo '1 2 3 "foo bar"'))
~$ echo ${a[0]}
1
~$ echo ${a[1]}
2
~$ echo ${a[2]}
3
~$ echo ${a[3]}
"foo
~$ echo ${a[4]}
bar"
Run Code Online (Sandbox Code Playgroud)

我相信所发生的事情是,"foobar"被认为是标准输出单独项目,但目标是巩固这些物品放入一个数组.

显然,我可以编写一个小循环来将这些术语合并为一个,但我想知道有一个更优雅的解决方案吗?

编辑:echo '1 2 3 "foo bar"'在我的代码中代替的是相当复杂的,但关键是我需要从这个表单的一些未知标准输出形成一个数组.

arrays bash stdout quoting

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

bash:如果未安装,则自动安装包

假设我认为我安装了SVN.我运行命令,我得到以下输出:

aoneill@aoneill-Laptop:~/Documents$ svn
The program 'svn' is currently not installed. You can install it by typing:
sudo apt-get install subversion
Run Code Online (Sandbox Code Playgroud)

我的问题是:我可以改变输出,或者在这样的情况下,说出类似下面的内容,并在最后提示?

aoneill@aoneill-Laptop:~/Documents$ svn
The program 'svn' is currently not installed. You can install it by typing:
sudo apt-get install subversion

Install the package? [y/n]
Run Code Online (Sandbox Code Playgroud)

谢谢!它会使包装处理更好!

linux bash ubuntu package apt-get

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

在PHP中使用`/`作为数组索引,然后转换为对象

我有一个定义如下的数组:

$bar = array(
   '/' => 'foo'
);
Run Code Online (Sandbox Code Playgroud)

我可以将它转换为一个类(使用$baz = (object) $bar),我没有得到任何错误.$baz包含以下内容:(通过var_dump)

object(stdClass)#1 (1) {
  ["/"]=>
  string(3) "foo"
}
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法找到一种方法来访问该/属性$baz.我以为我可以使用$baz -> /;,但显然该语句存在语法问题.

谢谢您的帮助!

php arrays object

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

标签 统计

arrays ×2

bash ×2

apt-get ×1

linux ×1

object ×1

package ×1

php ×1

quoting ×1

stdout ×1

ubuntu ×1