设为首页收藏本站

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย french

搜索
热搜: 活动 交友 discuz

为了提高论坛的技术含量,我决定请教个问题。 [复制链接]
查看:133 | 回复:18

537

主题

5891

回帖

1万

积分

论坛元老

积分
13519
发表于 2013-7-12 01:10:27 | 显示全部楼层 |阅读模式
本帖最后由 Host.HowPick 于 2013-7-12 01:11 编辑

为了提高论坛的技术含量,我决定请教个问题。


FreeBSD下面的 sh

据说天生没有数组, 但是我想用, 有人说可以模拟数组。[ol]
  • set_avar()
  • {
  • eval "$1_$2=\$3"
  • }
  • _get_avar()
  • {
  • eval "_AVAR=\$$1_$2"
  • }
  • get_avar()
  • {
  • _get_avar "$@" && printf "%s\n" "$_AVAR"
  • }
  • # 使用方法是
  • set_avar arr 0 '我'
  • set_avar arr 1 '是'
  • set_avar arr 2 '一'
  • set_avar arr 3 '颗'
  • set_avar arr 4 '白菜'
  • get_avar arr 0
  • get_avar arr 1
  • get_avar arr 2
  • get_avar arr 3
  • get_avar arr 4
  • [/ol]复制代码我想问,如果将其中一个字符串赋值给一个变量,类似于
    $str4=`get_avar arr 4`

    不过上面的代码不行啊。
    $str4=$(get_avar arr 4)
    这个写法也不行啊。


    有办法吗? 如果可以, get_avar 方法里面需要如何修改?

    sh 的语法实在看不明白。



  • 37

    主题

    252

    回帖

    629

    积分

    高级会员

    积分
    629
    发表于 2013-7-12 01:11:21 | 显示全部楼层
    还是喜欢bat

    414

    主题

    7199

    回帖

    1万

    积分

    论坛元老

    积分
    15732
    发表于 2013-7-12 02:02:37 | 显示全部楼层
    完全看不懂

    537

    主题

    5891

    回帖

    1万

    积分

    论坛元老

    积分
    13519
     楼主| 发表于 2013-7-12 02:09:11 | 显示全部楼层

    Kvm 发表于 2013-7-12 02:02



    完全看不懂

    已经爆破。

    134

    主题

    2253

    回帖

    4986

    积分

    论坛元老

    积分
    4986
    发表于 2013-7-12 02:02:00 | 显示全部楼层
    变量是什么?数组又是什么?求科普

    352

    主题

    5414

    回帖

    1万

    积分

    论坛元老

    积分
    11956
    发表于 2013-7-12 03:54:16 | 显示全部楼层
    "

    google

    224

    主题

    2144

    回帖

    5032

    积分

    论坛元老

    积分
    5032
    发表于 2013-7-12 05:07:02 | 显示全部楼层
    你这样做N多变量……
    ---------------------------------------
    shell:

    arr=('我' '是' '一' '颗' '白菜');
    echo ${arr[4]};
    echo ${#arr[@]}  #这是长度
    输出:
    白菜
    5
    ----------------------
    然后也可以这样
    arr[4]='AMH';
    echo "${arr[*]}"
    然后会输出

    我 是 一 颗 AMH



    537

    主题

    5891

    回帖

    1万

    积分

    论坛元老

    积分
    13519
     楼主| 发表于 2013-7-12 03:54:00 | 显示全部楼层

    smyz 发表于 2013-7-12 05:29



    你这样做N多变量……
    ---------------------------------------
    shell:

    是 sh 不是 Bash ,  sh 里面没有数组类型。。。

    20

    主题

    396

    回帖

    910

    积分

    高级会员

    积分
    910
    发表于 2013-7-12 05:29:13 | 显示全部楼层
    wow  小白路过
    支持技术讨论

    224

    主题

    2144

    回帖

    5032

    积分

    论坛元老

    积分
    5032
    发表于 2013-7-12 13:03:26 | 显示全部楼层
    BSD默认CSH吧,那指定bash不就好了 还熟悉
    否要 发表于 2013-7-12 13:15



    BSD默认CSH吧,那指定bash不就好了 还熟悉

    不能啊。 节省内存,不安装其他的shell。
    您需要登录后才可以回帖 登录 | 立即注册

    论坛客服/商务合作/投诉举报:2171544 (QQ)
    落伍者创建于2001/03/14,本站内容均为会员发表,并不代表落伍立场!
    拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!
    落伍官方微信:2030286 邮箱:(djfsys@gmail.com|tech@im286.com)
    © 2001-2014

    浙公网安备 33060302000191号

    浙ICP备11034705号 BBS专项电子公告通信管[2010]226号

      落伍法律顾问: ITlaw-庄毅雄

    Archiver|手机版|Discuz! X

    GMT+8, 2026-8-2 18:48 , Processed in 0.015734 second(s), 3 queries , Gzip On, Redis On.

    返回顶部