分页: 1 / 1

在shell可以执行,在script里不能执行.[弱弱的问题,新手阿]

发表于 : 2009-08-08 14:26
谦笔小新
各位大侠 ,提一个弱弱的问题,read 在script里面不能执行。
详情:我在终端里面用read读取一个数组

代码: 全选

read -p "Read some words" -a  array
可以读取数组,
但是我写到script里面

代码: 全选

#!/bin/bash
read -p "Read some words" -a  array
却提示

代码: 全选

read: 2: Illegal option -a
什么原因呢?各位不吝指教阿,在google查了一个小时了还没查出...

Re: 在shell可以执行,在script里不能执行.[弱弱的问题,新手阿]

发表于 : 2009-08-08 14:36
cnkilior

代码: 全选

#!/bin/bash
read -p "Read some words"  array
就可以了。

虽然我不知道-a什么用!

Re: 在shell可以执行,在script里不能执行.[弱弱的问题,新手阿]

发表于 : 2009-08-08 14:42
谦笔小新
cnkilior 写了:

代码: 全选

#!/bin/bash
read -p "Read some words"  array
就可以了。

虽然我不知道-a什么用!
-a是read 一个数组的
不用-a就只read 一个字符串阿
这个在终端测试可以read一个数组,但是script就不行,哪位大侠指点下阿~

Re: 在shell可以执行,在script里不能执行.[弱弱的问题,新手阿]

发表于 : 2009-08-08 21:19
谦笔小新
我还发现一个问题
var=1
ls $var* 可以list我文件夹中的1.txt 1.sh
但是写到script里面又不行了~又认不出来$var*是什么东西了~不知道这是为啥呀~

Re: 在shell可以执行,在script里不能执行.[弱弱的问题,新手阿]

发表于 : 2009-08-08 21:31
O_O_BOT
#!/bin/bash
read -p "test:" -a array
for v in "${array[@]}";do
echo $v
done

没问题哦

Re: 在shell可以执行,在script里不能执行.[弱弱的问题,新手阿]

发表于 : 2009-08-12 10:53
谦笔小新
O_O_BOT 写了:#!/bin/bash
read -p "test:" -a array
for v in "${array[@]}";do
echo $v
done
+ read -p test: -a array
read: 1: Illegal option -a
test: 5: Bad substitution

Shell 已返回2

为什么我的有问题呢?

Re: 在shell可以执行,在script里不能执行.[弱弱的问题,新手阿]

发表于 : 2009-09-09 11:19
sunsoft1021
ls -l `echo $SHELL`
看看输出,可能你在终端的shell不是bash,可能会有这个问题,因为shell不同。

Re: 在shell可以执行,在script里不能执行.[弱弱的问题,新手阿]

发表于 : 2009-09-09 12:17
aerofox
谦笔小新 写了:
O_O_BOT 写了:#!/bin/bash
read -p "test:" -a array
for v in "${array[@]}";do
echo $v
done
+ read -p test: -a array
read: 1: Illegal option -a
test: 5: Bad substitution

Shell 已返回2

为什么我的有问题呢?
你是怎么执行这个脚本的?如果是用“sh 文件名”的方式,那么改为“bash 文件名”。