Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何在bash中连接路径指向函数的字符串?_String_Bash_String Concatenation - Fatal编程技术网

String 如何在bash中连接路径指向函数的字符串?

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 } 在我从中得到的结果中,有一个逗号分隔 /

我正在创建一个脚本,该脚本应该在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
}
在我从中得到的结果中,有一个逗号分隔

/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
也可以。