
文字列を操作して変数に割り当てる方法は?
この文字列操作は私が望む方法で動作します。
echo ${dir:2:5} | sed 's/[.]$//';
しかし:
var x = ${dir:2:5} | sed 's/[.]$//';
そして
x = ${dir:2:5} | sed 's/[.]$//';
そして
x = $(${dir:2:5} | sed 's/[.]$//');
次のようなエラーが発生します。
script.sh: line 2: mystring: command not found
script.sh: line 2: x: command not found
script.sh: line 2: var: command not found
私の意図は、コマンドでこの変数を使用することですmv
。
mv /var/$x/test/$x.mp4 /home/me/
答え1
再充填するフレディ回答;sed
パイプは次のように交換することもできます。bash
文字列の置き換え。例:
x=abcd.efghijk ; y="${x:2:5}" ; echo "$y" "${y/.}"
出力:
cd.ef cdef
答え2
努力する:
x=$(echo "${dir:2:5}" | sed 's/\.$//')
x=value
変数を宣言するときは、スペース()を省略する必要があります。$dir
変数です。コマンドの出力を印刷するには、echo "${dir:2:5}" | sed 's/\.$//'
端末で使用できます。変数に値を格納するには、x
コマンド置換を使用して値をコマンドに置き換えます。$( )