作者stellvia7 (stellvia)
看板LinuxDev
标题[问题] shellscript执行指令 command not found
时间Sat Feb 21 12:50:43 2015
目前是想写一个script 读取档案a
此档案a有写要执行的指令以及要下的参数,且每个参数会用"," 隔开
但是会出现command not found
目前卡在有空白的指令就会 command not found
a:
#arg0 execute or not
#arg1 command
#arg2 match pattern
#arg3 timeout
1,ls,test,2
1,ls -al,test,2
--------------------------------------
test.sh:
#!/bin/bash
IFS=","
filename='commands'
exec < $filename
while read line
do
set $line
if [ "$1" == "1" ]; then
echo "Now Execute command $2, compare with $3, set timeout $4"
log="$($2)" ==> 问题在这边会出现command not found : ls -al
==> 假如指令只有 ls 就没问题,多了一个空白就不行
....
....
done
麻烦各位帮忙一下 卡了我好久
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.129.100.128
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1424494245.A.6F4.html
※ 编辑: stellvia7 (220.129.100.128), 02/21/2015 12:52:39
※ 编辑: stellvia7 (220.129.100.128), 02/21/2015 12:53:01
1F:推 goldie: 加个eval吧: log="$(eval "$2")" 02/22 11:22
2F:推 goldie: 此外,bash可以把exec < 跟while do ... done合并成: 02/22 11:24
3F:→ goldie: done < $filename 02/22 11:25
4F:→ goldie: 然後exec < $filename那行就可以拿掉了 02/22 11:25
5F:→ stellvia7: 太感谢您了 解了 谢谢x9999 02/23 03:25