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

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

[复制链接]

731

主题

7227

回帖

1万

积分

论坛元老

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



  • 回复

    使用道具 举报

    49

    主题

    319

    回帖

    797

    积分

    高级会员

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

    使用道具 举报

    769

    主题

    1万

    回帖

    2万

    积分

    论坛元老

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

    使用道具 举报

    731

    主题

    7227

    回帖

    1万

    积分

    论坛元老

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

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



    完全看不懂

    已经爆破。

    回复

    使用道具 举报

    338

    主题

    3926

    回帖

    8978

    积分

    论坛元老

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

    使用道具 举报

    423

    主题

    7225

    回帖

    1万

    积分

    论坛元老

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

    google
    回复

    使用道具 举报

    276

    主题

    2541

    回帖

    5964

    积分

    论坛元老

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

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

    我 是 一 颗 AMH



    回复

    使用道具 举报

    731

    主题

    7227

    回帖

    1万

    积分

    论坛元老

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

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



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

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

    使用道具 举报

    43

    主题

    1337

    回帖

    2893

    积分

    金牌会员

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

    使用道具 举报

    276

    主题

    2541

    回帖

    5964

    积分

    论坛元老

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



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

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2025-7-1 09:53 , Processed in 0.022355 second(s), 5 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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