我开始使用bash脚本并按照简短指南制作了这个小脚本,但由于某种原因,当我使用sh myscript
运行脚本时,我得到了
myscript: 5: myscript: 0: not found running on ubuntu 12.04
这是我下面的脚本如果没有设置args,我至少应该看到echo消息:
#!/bin/bash
#will do something
name=$1
username=$2
if (( $# == 0 ))
then
echo "##############################"
echo "myscript [arg1] [arg2]"
echo "arg1 is your name"
echo "and arg2 is your username"
fi
var1="Your name is ${name} and your username is ${username}"
`echo ${var1} > yourname.txt`
答案 0 :(得分:4)
`echo ${var1} > yourname.txt`
摆脱反击。
echo ${var1} > yourname.txt
...出于某种原因,当我使用
运行脚本时sh myscript
...
不要那样跑。使脚本可执行并直接运行
chmod +x myscript
./script
(或明确地使用bash myscript
运行。)
答案 1 :(得分:1)
看起来这个表达式可以在bash中工作但不能在sh中工作。正如其他人指出的那样将其更改为可执行文件,请确保您的shebang行正在使用bash并按此运行:
./myscript
如果你想用sh运行它,那就是抱怨第5行。把它改成这个并且它将在/ bin / sh中工作。
if [ $# -ne 0 ]
查看测试手册页。
此外,您不需要此行上的反对: echo $ {var1}> yourname.txt