嗨我将参数传递给我的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"
任何人都可以解释为什么吗?感谢
答案 0 :(得分:2)
shell扩展*
,因此您的脚本会收到目录中的所有文件。要显示星星,您需要引用echo
echo "$3"