如何将表达式的结果存储到变量中?
echo "hello" > var1
我也可以做这样的事情吗?
var1.substring(10,15); var1.replace('hello', '2'); var1.indexof('hello')
PS。我曾尝试谷歌搜索,但没有成功。
正如@larsmans 评论的那样,Konsole
是终端模拟器,它反过来运行一个shell。在 linux 上,这通常是bash
,但也可能是别的东西。
找出您正在使用的 shell,并打印手册页。
echo $SHELL # shows the full path to the shell
man ${SHELL##*/} # use the rightmost part (typically bash, in linux)
对于一般介绍,请使用 unix shell 上的 wikipedia 条目或GNU Bash 参考
一些具体的答案:
var1="hello"
echo ${var1:0:4} # prints "hell"
echo ${var1/hello/2} # prints "2" -- replace "hello" with "2"
并冒着炫耀的风险:
index_of() { (t=${1%%$2*} && echo ${#t}); } # define function index_of
index_of "I say hello" hello
6
但这超出了简单的 shell 编程。
Konsole 基本上是 bash。因此,从技术上讲,您正在寻找它。
认为:
s="hello"
为了var1.substring(1,3);
你会这样做:
$ echo ${s:1:2}
el
为了var1.replace('e', 'u');
你可以:
$ echo ${s/l/u} #replace only the first instance.
hullo
$ echo ${s//e/u} #this will replace all instances of e with u
为了var1.indexof('l')
你可以(我不知道任何 bash-ish 方法,但无论如何):
$ echo $(expr index hello l)
4
在bash
(linux上的标准shell)中,将表达式结果存储在变量中的语法是
VAR=$( EXPRESSION )
所以,例如:
$ var=$(echo "hello")
$ echo $var
hello
对于你的第二个问题:是的,这些事情只使用 shell 是可能的——但你可能最好使用像 python 这样的脚本语言。
对于它的价值:这是一个描述如何在 bash 中进行字符串操作的文档。
如您所见,它并不完全漂亮。