加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

带有数值范围的ls在bash脚本中不起作用

发布时间:2020-12-14 00:05:46 所属栏目:Linux 来源:网络整理
导读:我有一个文件夹,文件名为file_1.ext … file_90.ext.我可以使用以下命令列出其中的一系列: $ls /home/rasoul/myfolder/file_{6..19}.ext 但是当我想在bash脚本中使用这个命令时,它不起作用.这是一个最小的例子: #!/bin/bashDIR=$1st=$2ed=$3FILES=`ls ${DI
我有一个文件夹,文件名为file_1.ext … file_90.ext.我可以使用以下命令列出其中的一系列:

$ls /home/rasoul/myfolder/file_{6..19}.ext

但是当我想在bash脚本中使用这个命令时,它不起作用.这是一个最小的例子:

#!/bin/bash

DIR=$1
st=$2
ed=$3

FILES=`ls ${DIR}/file_{$st..$ed}.ext`
for f in $FILES; do
  echo $f
done

运行它,

$bash test_script.sh /home/rasoul/myfolder 6 19

输出以下错误消息:

ls: cannot access /home/rasoul/myfolder/file_{6..19}.ext: No such file or directory

解决方法

支撑扩张发生在可变扩张之前.

(而且,不解析ls输出.).你可以说:

for f in $(seq $st $ed); do 
    echo "${DIR}/file_${f}.ext";
done

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读