这个以下代码是我写的脚本的一部分。现在,出于这个脚本的目的,我假设./src中只有一个文件,所以这个循环应该只执行一次。现在,在某个循环中,我想获取$ f(文件名)的前4个字符并将其存储在另一个变量中。我知道有cut命令,但我不确定是否或如何在这里使用,因为我认为cut用于文件的内容,而不是文件本身。
for f in `ls ./src`
do
echo $f
cd tmp
f="../src/$f"
sh "$f"
done
答案 0 :(得分:5)
来自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}
玩得开心!
答案 1 :(得分:4)
你可以使用纯粹的bash方式:
${parameter:offset:length}
即。得到$HOME
变量的第一个字符:
echo ${HOME:0:4}
btw你的脚本也有问题(从不解析ls输出)。它应该是这样的:
for f in ./src/*
do
echo $f
cd tmp
f="../src/$f"
first4=${f:0:4}
sh "$f"
done