[已解决]请教 shell script 变量中空格的问题
Tofloor
poster avatar
admin
deepin
2012-08-10 16:52
Author
那个农历软件 lunar 的参数是要带空格的,比如:
  1. lunar 2012 08 10 09:00
Copy the Code
而每次这么输一遍太麻烦,试过
  1. lunar $date
Copy the Code
后面加参数是不行的。
于是写了这个小脚本:
  1. #!/bin/bash
  2. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
  3. Yoftd=$(date +%Y)        #Year of today
  4. moftd=$(date +%m)
  5. doftd=$(date +%d)
  6. Hoftd=$(date +%H:%M)
  7. thedate=("$Yoftd $moftd $doftd $Hoftd")
  8. echo -e $thedate        #test var
  9. lunartd=lunar $thedate
Copy the Code
变量 thedate 中已经有空格,但是 lunar 在读取的时候只读了第一个空格前的那个 2012,无法执行。

在 cal 中用这个方法加入参数也出现同样问题,而直接在终端输
  1. cal 8 2012
Copy the Code
也没问题。

请问该如何解决空格的问题?

或者有更好的写参数方法?求教。
Reply Favorite View the author
All Replies
cxbii
deepin
2012-08-11 03:32
#1
不懂。。。。
Reply View the author
admin
deepin
2012-08-17 22:47
#2
我自己顶上去
Reply View the author
admin
deepin
2012-09-06 05:37
#3
shell 解决方法:
  1. #!/bin/bash
  2. PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
  3. lunar -h --utf8 $(date +"%Y %m %d %H:%M")
Copy the Code
Reply View the author
admin
deepin
2012-09-06 05:38
#4
Perl 解决方法:
  1. #!/usr/bin/perl
  2. use 5.010;
  3. #use strict;
  4. $date=`date +"%Y %m %d %H:%M"`;
  5. say `lunar -h --utf8 $date`
Copy the Code
Reply View the author