式の結果を変数に格納するにはどうすればよいですか?
echo "hello" > var1
このようなこともできますか?
var1.substring(10,15); var1.replace('hello', '2'); var1.indexof('hello')
PS。私はグーグルを試しましたが、成功しませんでした。
@larsmansがコメントしているように、Konsole
はターミナルエミュレータであり、これはシェルを実行します。Linuxでは、これは通常bash
ですが、他の何かである可能性があります。
使用しているシェルを見つけて、manページを印刷します。
echo $SHELL # shows the full path to the shell
man ${SHELL##*/} # use the rightmost part (typically bash, in linux)
一般的な紹介については 、UNIXシェルのウィキペディアエントリまたはGNUBash参照を使用してください
いくつかの具体的な答え:
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
しかし、これは単純なシェルプログラミングを超えています。
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っぽい方法を知らないが、とにかく):
$ echo $(expr index hello l)
4
( bash
Linux の標準シェル) では、式の結果を変数に格納するための構文は次のとおりです。
VAR=$( EXPRESSION )
たとえば、次のようになります。
$ var=$(echo "hello")
$ echo $var
hello
2 番目の質問について: はい、この種のことはシェルのみを使用して可能ですが、Python などのスクリプト言語を使用する方がおそらく優れています。
その価値について: これは、 bashで文字列操作を行う方法を説明するドキュメントです。
ご覧のとおり、それほど美しくはありません。