String 如何在bash中连接路径指向函数的字符串?
我正在创建一个脚本,该脚本应该在HPC(集群)上创建作业。我创建了一个函数,该函数获取4个变量并从中创建一个字符串:String 如何在bash中连接路径指向函数的字符串?,string,bash,string-concatenation,String,Bash,String Concatenation,我正在创建一个脚本,该脚本应该在HPC(集群)上创建作业。我创建了一个函数,该函数获取4个变量并从中创建一个字符串: startJob (){ if [ $per -lt 10 ]; then folder=/storage/users/avityo/prog/0$1.$2$3 else folder=/storage/users/avityo/prog/$1.$2$3 fi echo $folder } 在我从中得到的结果中,有一个逗号分隔 /
startJob (){
if [ $per -lt 10 ]; then
folder=/storage/users/avityo/prog/0$1.$2$3
else
folder=/storage/users/avityo/prog/$1.$2$3
fi
echo $folder
}
在我从中得到的结果中,有一个逗号分隔
/storage/users/avityo/prog/00,.583,bfd,
如何删除这些逗号
编辑:从我得到的答案和评论来看,我应该提到我如何调用这个函数,我意识到我调用这个函数的方式不对。我用的是:
let count=0
for per in $(seq 70 -5 0); do
for seed in {580..583}; do
for c in {"fs","fd","bfs","bfd"}; do
let count=$count+1
startJob $per, $seed, $c, $count
done
done
done
调用函数时删除逗号修复了此问题 看起来您是这样调用函数的:
startJob 0, 583, bfd, 4thUnusedArgument
你不需要逗号;参数之间仅用空格分隔。试试这个:
startJob 0 583 bfd 4thUnusedArgument
如果您不想编辑逗号的来源,也就是说,您可以通过管道将其传输到sed
echo $folder|sed 's/,//g'
哪个会输出
/storage/users/avityo/prog/00.583bfd
您是否尝试在源字符串中删除它们?请编辑您的问题以显示您对函数的示例输入。祝你好运。为了完整性,你也不需要在For循环的内部使用大括号<代码>用于“fs”“fd”“bfs”“bfd”中的c;对fs fd bfs bfd中的c执行或甚至
;do
也可以。