Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.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
Linux 如何从顺序输入文件派生输出文件名?_Linux_Bash_Unix_Filenames - Fatal编程技术网

Linux 如何从顺序输入文件派生输出文件名?

Linux 如何从顺序输入文件派生输出文件名?,linux,bash,unix,filenames,Linux,Bash,Unix,Filenames,我获得了一系列程序文件,如下所示: /work/xiaofenglu/science/myten.*.dump.gz 现在,我需要提取字符串myten.*作为顺序输出文件的基本名称。 我使用以下命令来处理此问题: for inputfile in *.dump.gz do base_name='basename ${inputfile} .dump.gz' done 但是,它不起作用。使用: 您的命令不起作用,因为您甚至没有调用命令basename。您只是将字符串base\u nam

我获得了一系列程序文件,如下所示:

/work/xiaofenglu/science/myten.*.dump.gz
现在,我需要提取字符串
myten.*
作为顺序输出文件的基本名称。 我使用以下命令来处理此问题:

for inputfile in *.dump.gz
do
   base_name='basename ${inputfile} .dump.gz'
done
但是,它不起作用。

使用:


您的命令不起作用,因为您甚至没有调用命令
basename
。您只是将字符串
base\u name
定义为逐字字符串

因为单引号。也许你在某处看到了这个命令:

base_name=`basename ${inputfile} .dump.gz`
你把反勾号和单引号混为一谈了。如果使用反勾号而不是单引号,则该命令可以工作。但最好使用
$(…)
结构,而不是反勾号:

base_name=$(basename "$inputfile" .dump.gz)
这被称为一个


但是我要说的是,调用外部进程
basename
来执行Bash自己可以做得很好的事情是没有用的。

我不知道如何在帖子中加上一个反勾号。。。有可能吗?单bck引号:`是的,只需用一个反斜杠转义。@Sheller:谢谢……但它不是“代码”格式……它已经比没有好了。:)。
base_name=`basename ${inputfile} .dump.gz`
base_name=$(basename "$inputfile" .dump.gz)