这段代码是我写的脚本的一部分.现在,出于这个脚本的目的,我假设./src中只有一个文件,所以这个循环应该只执行一次.现在,在某个循环中,我想获取$ f(文件名)的前4个字符并将其存储在另一个变量中.我知道有cut命令,但我不确定是否或如何在这里使用,因为我认为cut用于文件的内容,而不是文件本身.
for f in `ls ./src`
do
echo $f
cd tmp
f="../src/$f"
sh "$f"
done
Run Code Online (Sandbox Code Playgroud)
来自http://tldp.org/LDP/abs/html/string-manipulation.html
子串提取
${string:position}在$ position从$ string中提取子字符串.如果$ string参数是"*"或"@",那么这将从$ position开始提取位置参数[1].
${string:position:length}从$ position的$ string中提取子字符串的$ length字符.
例
shortName=${f:0:4}
Run Code Online (Sandbox Code Playgroud)
玩得开心!
您可以使用纯 bash 方式:
${parameter:offset:length}
Run Code Online (Sandbox Code Playgroud)
即获取$HOME变量的第一个字符:
echo ${HOME:0:4}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,您的脚本也有问题(永远不要解析 ls 输出)。应该是这样的:
for f in ./src/*
do
echo $f
cd tmp
f="../src/$f"
first4=${f:0:4}
sh "$f"
done
Run Code Online (Sandbox Code Playgroud)