找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 100|回复: 18

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

[复制链接]

666

主题

6969

回帖

1万

积分

论坛元老

积分
16004
发表于 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 的语法实在看不明白。



  • 回复

    使用道具 举报

    45

    主题

    309

    回帖

    759

    积分

    高级会员

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

    使用道具 举报

    489

    主题

    8251

    回帖

    1万

    积分

    论坛元老

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

    使用道具 举报

    666

    主题

    6969

    回帖

    1万

    积分

    论坛元老

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

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



    完全看不懂

    已经爆破。

    回复

    使用道具 举报

    179

    主题

    2804

    回帖

    6187

    积分

    论坛元老

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

    使用道具 举报

    413

    主题

    6667

    回帖

    1万

    积分

    论坛元老

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

    google
    回复

    使用道具 举报

    263

    主题

    2480

    回帖

    5785

    积分

    论坛元老

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

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

    我 是 一 颗 AMH



    回复

    使用道具 举报

    666

    主题

    6969

    回帖

    1万

    积分

    论坛元老

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

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



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

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

    使用道具 举报

    20

    主题

    425

    回帖

    948

    积分

    高级会员

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

    使用道具 举报

    263

    主题

    2480

    回帖

    5785

    积分

    论坛元老

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



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

    不能啊。 节省内存,不安装其他的shell。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-1-18 13:51 , Processed in 0.020947 second(s), 3 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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