在PHP中,字符串连接在一起如下:
$foo = "Hello";
$foo .= " World";
Run Code Online (Sandbox Code Playgroud)
在这里,$foo成为"Hello World".
在Bash中如何实现?
我有一个非常简单的脚本,如下所示:
#!/bin/bash
VAR1="$1"
MOREF='sudo run command against $VAR1 | grep name | cut -c7-'
echo $MOREF
Run Code Online (Sandbox Code Playgroud)
当我从命令行运行此脚本并将参数传递给它时,我没有得到任何输出.但是,当我运行$MOREF变量中包含的命令时,我能够获得输出.
我想知道如何获取需要在脚本中运行的命令的结果,将其保存到变量,然后在屏幕上输出该变量?
在Bash脚本中,我想将一行分成几部分并将它们存储在一个数组中.
这条线:
Paris, France, Europe
Run Code Online (Sandbox Code Playgroud)
我想将它们放在这样的数组中:
array[0] = Paris
array[1] = France
array[2] = Europe
Run Code Online (Sandbox Code Playgroud)
我想用简单的代码,命令的速度无关紧要.我该怎么做?
我有一个包含许多单词的字符串,每两个单词之间至少有一个空格.如何将字符串拆分为单个单词,以便循环使用它们?
该字符串作为参数传递.例如${2} == "cat cat file".我怎么能循环呢?
另外,如何检查字符串是否包含空格?
有人能告诉我是否应该在shell脚本中包含变量的引号?
例如,以下是正确的:
xdg-open $URL
[ $? -eq 2 ]
Run Code Online (Sandbox Code Playgroud)
要么
xdg-open "$URL"
[ "$?" -eq "2" ]
Run Code Online (Sandbox Code Playgroud)
如果是这样,为什么?
我一直在寻找一个解决方案并找到类似的问题,只是他们试图在它们之间用空格分割句子,而答案对我的情况不起作用.
目前一个变量被设置为像这样的字符串:
ABCDE-123456
我想将它分成2个变量,同时消除" - ".即:
var1=ABCDE
var2=123456
怎么可能做到这一点?
这是对我有用的解决方案:
var1=$(echo $STR | cut -f1 -d-)
var2=$(echo $STR | cut -f2 -d-)
是否可以使用cut命令在没有分隔符的情况下工作(每个字符都设置为变量)?
var1=$(echo $STR | cut -f1 -d?)
var2=$(echo $STR | cut -f1 -d?)
var3=$(echo $STR | cut -f1 -d?)
etc.
我在Bash中有一个数组,例如:
array=(a c b f 3 5)
Run Code Online (Sandbox Code Playgroud)
我需要对数组进行排序.不只是以排序的方式显示内容,而是获取带有已排序元素的新数组.新排序的数组可以是全新的也可以是旧的.
如果以下示例将IFS环境变量设置为换行符...
IFS=$'\n'
Run Code Online (Sandbox Code Playgroud)
我知道IFS环境变量是什么,\n字符是什么(换行),但为什么不使用以下形式:(
IFS="\n"哪个不起作用)?
例如,如果我想循环遍历文件的每一行并想要使用for循环,我可以这样做:
for line in (< /path/to/file); do
echo "Line: $line"
done
Run Code Online (Sandbox Code Playgroud)
但是,除非IFS设置为换行符,否则这将无法正常工作.为了让它工作,我必须这样做:
OLDIFS=$IFS
IFS=$'\n'
for line in (< /path/to/file); do
echo "Line: $line"
done
IFS=$OLDIFS
Run Code Online (Sandbox Code Playgroud)
注意:我不需要另一种方式做同样的事情,我已经知道很多其他的...我只是对此感到好奇,$'\n'并想知道是否有人可以给我一个解释.
假设我有一个Unix shell变量,如下所示
variable=abc,def,ghij
Run Code Online (Sandbox Code Playgroud)
我想使用for循环提取所有值(abc,def和ghij)并将每个值传递给过程.
该脚本应允许从中提取任意数量的逗号分隔值$variable.
日期时间字符串采用以下格式:06/12/2012 07:21:22.如何将其转换为UNIX时间戳或纪元?