[编辑]我总结了下面的答案,错误在于:
[编辑] 如果[$ 1 ne $ value];然后
我正在尝试将值传递给命令:
#!/bin/bash
for value in $(mycommand $1)
do
echo Found $value
if [$1 ne $value]; then
echo No match!
if
done
但如果我输入以下内容来执行脚本:
#./myscript 25
我收到错误:
Found somestuff
./myscript: 25: command not found
我想要做的是传递脚本的第一个参数(上例中的“25”)并将其发送到命令'mycommand'。
我该怎么做?
答案 0 :(得分:1)
那是完整的myscript
吗?我按照书面编写了你的脚本并没有出现这样的错误:
$ ./myscript.sh 25 Found somestuff $
如果我在脚本末尾添加$1
:
$ ./myscript.sh 25 Found somestuff ./myscript.sh: line 6: 25: command not found $
更新到您的编辑:使用[
命令时,您需要添加一些额外空间,并使用-ne
:
if [ $1 -ne $value ]; then
[
命令通常作为test
命令的软链接或硬链接实现,例如:
$ ls -l `which [` lrwxr-xr-x 1 root root 4 May 16 2006 /usr/bin/[ -> test
test
的手册页将提供有关有效表达式的更多信息。
答案 1 :(得分:0)
我发现该脚本没有任何问题。
$ more x
#!/bin/bash
for value in $(echo $1)
do
echo Found $value
done
$ sh x 28
Found 28
$
mycommand究竟做了什么?
答案 2 :(得分:0)
我更正后的脚本是:
!/bin/bash
for value in $(mycommand $1)
do
echo Found $value
if [ $1 != $value ]; then
echo No match!
if
done
非常感谢。