首页 > 解决方案 > 在bash的文件名中获取变量名

问题描述

我想根据我需要的数字将我的文件名从 file.txt 更改为 file_4i.txt 和 file_5i.txt 但是当我使用下面的命令时,文件名更改为 file_.txt 并且 m 的值永远不会是表明的。我想获得 4i 但 $mi 也不起作用。

sudo sh -c "m=4 ; mv file.txt file_$mi.txt"
sudo sh -c "m=4 ; mv file.txt file_$m.txt"

标签: bash

解决方案


使用单引号,这样变量就不会提前展开,并且使用{}somi不会被解释为变量名:

sudo sh -c 'm=4 ; mv file.txt file_${m}i.txt'
sudo sh -c 'm=4 ; mv file.txt file_$m.txt'

推荐阅读