将参数传递给脚本时输出奇怪

时间:2017-07-28 09:01:01

标签: bash shell unix

嗨我将参数传递给我的shell脚本并得到非常奇怪的结果.Below就是这个脚本 - :

#!/bin/bash
# set the STRING variable
path=$1
echo password | sudo -S -l
sudo /usr/bin/su - abcd  << EOF
cd $path
#write out current crontab
crontab -l > $2
#echo new cron into cron file
echo $3
#echo $3 >> $2
#install new cron file
#crontab mycron
EOF

上面工作正常,它继续指定路径,并创建备份文件但是当它转到echo $ 3时会产生错误的结果(奇怪的长字符串我不能在这里显示)。但它只提供输出如果传递参数为belw < / p>

./createNewCron.sh /u/siebel/abcd backing.txt "00 09 * * 1-5"

但是当我像下面传递字符串一样,它工作正常 - :

./createNewCron.sh /u/siebel/abcd backing.txt "echo hello"

任何人都可以解释为什么吗?感谢

1 个答案:

答案 0 :(得分:2)

shell扩展*,因此您的脚本会收到目录中的所有文件。要显示星星,您需要引用echo

echo "$3"