我想立即更改变量中文件的路径和扩展名,例如,执行以下操作
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意味着什么?
我有一些冗长的脚本互相调用,我希望他们的输出更具描述性.我们的想法是为每个脚本定制echo命令,如下所示.
我的问题是,如何使它非递归,使用echo?
这是script1.sh
#!/bin/bash
#Original version:
#function echo(){ echo $(basename $0 .sh): $1; }
#Version after fixes
function echo(){ builtin echo -n "$(basename $0 .sh): ">&2; builtin echo $@ ; }
echo Info
./script2.sh
Run Code Online (Sandbox Code Playgroud)
这是script2.sh
#!/bin/bash
#Original version:
#function echo(){ echo $(basename $0 .sh): $1; }
#Version after fixes
function echo(){ builtin echo -n "$(basename $0 .sh): ">&2; builtin echo $@ ; }
echo Info
exit 0
Run Code Online (Sandbox Code Playgroud)
所以输出应该是:
>./script1.sh
script1: Info
script2: Info
Run Code Online (Sandbox Code Playgroud)
---编辑
奖金:
>./script1.sh 2> /dev/null …Run Code Online (Sandbox Code Playgroud)