Bash:如何在一行中应用两个字符串操作?

Ilj*_*Bek 6 string bash

我想立即更改变量中文件的路径和扩展名,例如,执行以下操作

for F in $( find /foo/bar -name "*.ext" ); do 
  Ftmp=${F%.ext}
  cp $F ${Ftmp//bar/b0r}.tmp 
done
Run Code Online (Sandbox Code Playgroud)

没有临时变量

可以一次应用两个字符串操作,只有bash意味着什么?

小智 8

使用Bash 临时变量

$_    Temporary variable; initialized to pathname of script or program
      being executed. Later, stores the last argument of previous command.
      Also stores name of matching MAIL ?le during mail checks.
Run Code Online (Sandbox Code Playgroud)
for F in $( find /foo/bar -name "*.ext" )
do
  : ${F%.ext}
  cp $F ${_//bar/b0r}.tmp
done
Run Code Online (Sandbox Code Playgroud)