3
  1. 如何将表达式的结果存储到变量中?

    echo "hello" > var1
    
  2. 我也可以做这样的事情吗?

    var1.substring(10,15);
    var1.replace('hello', '2');
    var1.indexof('hello')
    

PS。我曾尝试谷歌搜索,但没有成功。

4

3 回答 3

2

正如@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 编程。

于 2012-08-03T15:54:19.563 回答
1

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
于 2012-08-03T15:53:59.447 回答
1

bash(linux上的标准shell)中,将表达式结果存储在变量中的语法是

VAR=$( EXPRESSION )

所以,例如:

$ var=$(echo "hello")
$ echo $var
hello

对于你的第二个问题:是的,这些事情只使用 shell 是可能的——但你可能最好使用像 python 这样的脚本语言。

对于它的价值:是一个描述如何在 bash 中进行字符串操作的文档。

如您所见,它并不完全漂亮。

于 2012-08-03T16:00:04.917 回答