Bash
Bash 字元串操作和賦值
如何操作字元串,然後將其分配給變數?
這個字元串操作按我的意願工作:
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/
嘗試:
x=$(echo "${dir:2:5}" | sed 's/\.$//')
- 聲明變數時必須省略空格 (
x=value
)$dir
是一個變數。要列印您將echo "${dir:2:5}" | sed 's/\.$//'
在終端中使用的命令的輸出。要將值保存在變數x
中,請使用命令替換將值替換為命令$( )
補充弗雷迪的回答;
sed
也可以用字元串bash
替換來替換管道。例子:x=abcd.efghijk ; y="${x:2:5}" ; echo "$y" "${y/.}"
輸出:
cd.ef cdef