以下代码有什么问题?
name='$filename | cut -f1 -d'.''
照原样,我得到了文字 string $filename | cut -f1 -d'.',但是如果我删除引号,我什么也得不到。同时,键入
$filename | cut -f1 -d'.'
"test.exe" | cut -f1 -d'.'
在 shell 中给了我想要的输出,test. 我已经知道$filename已经分配了正确的值。我想要做的是将不带扩展名的文件名分配给变量。
test
$filename
当您想在脚本/命令中执行命令时,您应该使用命令替换语法。$(command)
$(command)
所以你的线是
name=$(echo "$filename" | cut -f 1 -d '.')
代码说明:
echo
cut
-f
$()
name
请注意,这给出了变量的部分直到第一个时期.:
.
$ filename=hello.world $ echo "$filename" | cut -f 1 -d '.' hello $ filename=hello.hello.hello $ echo "$filename" | cut -f 1 -d '.' hello $ filename=hello $ echo "$filename" | cut -f 1 -d '.' hello