`

ubuntu数组赋值报not found

阅读更多
尼玛,ubuntu默认dash不支持数据,搞了好久,按下面方便把系统默认shell改为bash就行。

#!/bin/sh
declare -a name
for i in `seq 100`
do
   name[$i]=$i
   echo ${name[$i]} #为方便检查,加了打印
done
追问
都会报错
回答
同样是Ubuntu 10.10,不会报错。
书写时请注意空格,关键词for后面要有空格
追问
加了空格一样错
回答
我看了你下面的程序,
关键问题在于,你声明为了 #!/bin/sh,而sh环境是不能用 for((i=0; i<100; i++)) 这种不符合POSIX标准的语句的。只能用我的第二种方法。 for ... in ... 这种语句是支持的。或者用while循环,变量在循环中递增。
追问
#!/bin/sh
for i in 1 2 3
do
    name[$i]=$i
done
name[1]=1:not found
name[2]=1:not found
name[3]=1:not found

说实话,从没接触过象shell这么渣的语言。一点规范都没
回答
for循环前加上这句试试:
declare -a name
声明name为数组变量
追问
加不加都试过了,都错
回答
ubuntu中默认的shell是dash,是不支持数组的。
ls -l /bin/sh 可以看到sh是个指向dash的链接,所以你声明#!/bin/sh其实还是用的dash。
我忘记自己曾经配置过Ubuntu了。如下:
=========================================
怎么能把 dash 去掉而使用默认的 bash?
使用命令:sudo dpkg-reconfigure dash  
此命令是对已安装的包进行重新配置,在菜单(dash-bash-sh.png)中选择是否将 sh 链接到 dash (Install dash as /bin/sh?) 选择否即可。具体请到百度文库中搜索“Ubuntu把默认的bash替换成了dash“,里面有一张图片说明。
还有另一种不太好看的办法,请百度搜索“Shell中模拟数组”。
分享到:
评论

相关推荐

    ubuntu-编译时出现-bin-sh-1-pushd- not found.pdf

    ### Ubuntu 编译时出现 `/bin/sh: 1: pushd: not found` 错误解析及解决方案 #### 一、问题概述 在Ubuntu环境下进行软件编译时,可能会遇到以下错误信息:“/bin/sh: 1: pushd: not found”。此错误提示通常发生在...

    ubuntu-version `GLIBC-2.25` not found.pdf

    根据提供的文件信息,文档标题“ubuntu-version `GLIBC-2.25` not found.pdf”以及描述“ubuntu_version `GLIBC_2.25` not found”,明确指出在Ubuntu系统上遇到了GLIBC 2.25版本未找到的问题。GLIBC(GNU C Library...

    Ubuntu上支持chkconfig命令

    现在ubuntu上,默认是不支持chkconfig命令的,但支持自己安装,需要自己去下载对应的安装包。 方法:在存放该文件的目录下执行:dpkg -i chkconfig_11.0-79.1-1ubuntu1_all.deb

    编译时报 Looking for pthread_create - not found 的解决办法

    编译时报 Looking for pthread_create - not found 的解决办法 linux gcc 编译时报Looking for pthread_create - not found 其解决办法是...

    ubuntu qt提示QMYSQL driver not loaded 的解决方法不用重新编译

    qt编译连接MYSQL出现QMYSQL driver not loaded 基本成为普遍现象,网络...其余环境未试,请先执行ldd libqsqlmysql.so命令查看是否是libmysqlclient_r.so.18 =&gt; not found,是则可以用本安装包,不是的话就不一定适用。

    launch failed binary not found(图文)手把手教你解决

    ### 解决“launch failed binary not found”的方法 在软件开发过程中,尤其是对于初学者而言,经常会遇到各种编译和运行时的问题。其中一个常见的错误就是“launch failed binary not found”。这篇文章将详细地...

    linux中找不到编译内核提示mkimage command not found – U-Boot images will not be built的解决方法

    ### Linux中找不到编译内核提示mkimage command not found – U-Boot images will not be built的解决方法 在Linux环境中进行嵌入式系统的开发时,经常会遇到各种编译错误或缺失依赖的问题。其中,“mkimage ...

    sqlite3:not found 解决方法

    标题中的“sqlite3:not found”是一个常见的错误提示,通常在Linux或类Unix系统中出现,意味着系统找不到sqlite3命令行工具。SQLite是一款轻量级的数据库管理系统,它被广泛应用于嵌入式设备、移动应用以及服务器端...

    sqlite3 not found的解决办法

    在使用Linux或Unix类操作系统时,可能会遇到"sqlite3 not found"这样的错误提示,这通常意味着系统中没有安装SQLite3这个数据库引擎或者其路径没有被正确地添加到系统的PATH环境变量中。SQLite3是一个轻量级、开源的...

    ubuntu硬盘安装,修复Ubuntu的grub引导,修复windows7的引导.txt

    ### Ubuntu硬盘安装与引导修复详解 #### 一、硬盘安装Ubuntu 在进行硬盘安装Ubuntu之前,需要准备必要的工具和文件,比如使用`grub4dos`来创建引导菜单,以及Ubuntu的ISO镜像文件。 **步骤如下:** 1. **准备grub...

    iptables 用于Ubuntu16下

    ubuntu系统升级或者安装机器学习依赖库时,用这个可以防止劫持

    nss-3.9 ubuntu linux

    标题“nss-3.9 ubuntu linux”和描述“nss-3.9 linux”都提到了“nss-3.9”,这是一个针对Linux系统,特别是Ubuntu的版本号,其中“nss”代表Network Security Services。Network Security Services(NSS)是Mozilla...

    解决php-fpm.service not found问题的办法

    环境:ubuntu 16.04 64 php 版本:php-7.1.4 发现问题 正常编译安装 php 按照以前流程,把 init.d.php-fpm 往 /etc/init.d/php-fpm 拷贝 然后准备执行 service php-fpm start 时出错了 错误如下 Failed to start ...

    在Windows 上使用 grub 进行硬盘安装Ubuntu

    Ubuntu,然后再选择Install Ubuntu即可进入Ubuntu Live界面。在里面点击“安装Ubuntu ”按提示执行即可。 2、修复 Windows 启动项 重新启动ubuntu之后,你会发现丢失了windows 7的启动项。下面来说明如何修复。 进...

    SimHei.ttf

    ubuntu python matplotlib, 适用于“findfont: Font family ['SimHei'] not found. Falling back to DejaVu Sans.”

    解决 Eclipse-CDT 搭建C/C++ 开发环境部分问题

    本篇文章将深入探讨如何解决"Program "g++" not found in PATH"、"Lanuch failed no binaries"以及新建项目时找不到MinGW的问题。 首先,"Program "g++" not found in PATH"错误表明Eclipse无法在系统的PATH环境...

    win10上安装ubunt18双系统过程中出现mmx64.efi not found问题

    安装Ubuntu18过程中,从u盘启动ubunt安装,出现mmx64.efi not found问题 如下图: 制作好ubunt启动盘之后在EFI/BOOT下会看到两个文件,将其中grubx64.efi改名为mmx64.efi即可重装系统。 总结 以上所述是小编给大家...

Global site tag (gtag.js) - Google Analytics