设为首页收藏本站

融智技术学院

 找回密码
 注册

QQ登录

只需一步,快速开始

Kali Linux安全渗透教程新手版
搜索
查看: 452|回复: 0

【Liunx每日一问】在Shell脚本中,怎样控制数组呢?

[复制链接]
MrLi 发表于 2014-2-11 14:00:01 | 显示全部楼层 |阅读模式

问题:我想要我的脚本定义一个空数组。如果预先定义的条件字符串输入正确,则数组值应该被添加。为此,我做的脚本如下所示:
  1. declare -a FILES
  2. file_count=0
  3. if [ "$file_ext" != "$SUPPORTED_FILE_TYPE" ] ; then
  4.         echo "$file_ext is not supported for this task."
  5. else
  6.         $FILES[$file_count] = $filename
  7.         file_count=$file_count+1
  8. fi
复制代码
当执行这个脚本时,我得到一些错误。如下所示:
  1. linux-softwares/launchers/join_files.sh: 51: [0]: not found
复制代码


回答:当在数组中设置的数据不能使用$召回:
  1. declare -a FILES
  2. file_count=0
  3. if [ "$file_ext" != "$SUPPORTED_FILE_TYPE" ] ; then
  4.         echo "$file_ext is not supported for this task."
  5. else
  6.         FILES[$file_count]=$filename
  7.         file_count=$file_count+1
  8. fi
  9. FILES没有$。
复制代码
对我来说,这样工作。代码如下所示:
  1. #!/bin/bash
  2. declare -a FILES
  3. file_count=0

  4. file_ext='jpg'
  5. SUPPORTED_FILE_TYPE='jpg'
  6. filename='test.jpg'

  7. if [ "$file_ext" != "$SUPPORTED_FILE_TYPE" ] ; then
  8.         echo "$file_ext is not supported for this task."
  9. else
  10.         FILES[$file_count]=$filename
  11.         file_count=$(($file_count+1))
  12. fi
复制代码
可见,稍微修改$(()),为了数学操作,但是FILES赋值是相同的...
指明大量的测试后,Ubuntu默认shell好像是提高错误的dash。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

新突破电商

小黑屋|手机版|Archiver|融智技术学院 ( 京ICP备09018999号  

GMT+8, 2018-12-12 11:45

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表