如何操作字符串然后将其分配给变量?
这个字符串操作按我想要的方式工作:
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
答案2
尝试:
x=$(echo "${dir:2:5}" | sed 's/\.$//')
- 声明变量时必须省略空格 (
x=value
) $dir
是一个变量。要打印命令的输出,您可以echo "${dir:2:5}" | sed 's/\.$//'
在终端中使用。要将值保存在变量中x
,请使用命令替换将值替换为命令$( )