Mis*_*u4u 4 arrays bash shell ubuntu
我写了以下代码:
#!/bin/bash
#Simple array
array=(1 2 3 4 5)
echo ${array[*]}
Run Code Online (Sandbox Code Playgroud)
我收到错误:array.sh:3:array.sh:语法错误:"("意外
从我从谷歌那里得知,这可能是因为Ubuntu现在没有默认采用"#!/ bin/bash"这一事实......但是我又添加了这条线但错误仍然存在.
我也尝试过bash array.sh
但没有运气!它打印空白.
我的Ubuntu版本是:Ubuntu 14.04
Kei*_*son 17
鉴于该脚本:
#!/bin/bash
#Simple array
array=(1 2 3 4 5)
echo ${array[*]}
Run Code Online (Sandbox Code Playgroud)
并假设:
array.sh
;chmod +x array.sh
;/bin/bash
(你报告你有4.3.8,这当然是新的); 和那应该没有任何问题.
如果通过键入来执行脚本
./array.sh
Run Code Online (Sandbox Code Playgroud)
系统会注意该#!/bin/bash
行并使用执行脚本/bin/bash
.
如果您通过键入以下内容执行它:
sh ./array.sh
Run Code Online (Sandbox Code Playgroud)
然后它将使用执行它/bin/sh
.在Ubuntu上,/bin/sh
通常是一个符号链接/bin/dash
,一个不支持数组的Bourne-like shell .这将为您提供您报告的错误消息.
用于执行脚本的shell不受您当前使用的shell或将哪个shell配置为登录shell /etc/passwd
或等效的shell的影响(除非您使用source
或.
命令).
在您自己的答案中,您说您通过使用chsh
更改默认登录shell来解决问题/bin/bash
.这本身不应该有任何影响.(/bin/bash
无论如何,它是Ubuntu上的默认登录shell;你之前已将其更改为其他内容吗?)
什么是必须发生的是,你改变你使用命令sh ./array.sh
来./array.sh
而不自知.
尝试运行sh ./array.sh
,看看是否得到相同的错误.
归档时间: |
|
查看次数: |
7836 次 |
最近记录: |