a*****8 发帖数: 261 | 1 非常简单的b-shell, 可为什么不能显示你?
#!/bin/sh -xf
LS_DIR="$HOME"
ls -l "$LS_DIR/*.v"
运行后的错误信息:
ls: /home/xxu/*.v: No such file or directory
如果改成:
#!/bin/sh -xf
LS_DIR="$HOME"
ls -l "$LS_DIR"
则没有问题。请问这是怎么回事?是meta-character用错了?
谢谢 |
X****r 发帖数: 3557 | 2 如果你想让bash替换*的话就不要把它放到引号里:
ls -l "$LS_DIR"/*.v
【在 a*****8 的大作中提到】 : 非常简单的b-shell, 可为什么不能显示你? : #!/bin/sh -xf : LS_DIR="$HOME" : ls -l "$LS_DIR/*.v" : 运行后的错误信息: : ls: /home/xxu/*.v: No such file or directory : 如果改成: : #!/bin/sh -xf : LS_DIR="$HOME" : ls -l "$LS_DIR"
|
a*****8 发帖数: 261 | 3 还是不行。
我把 $#/bin/sh -x 开关打开,运行结果如下:
+LS_DIR=/home/xxu
+ls -l '/home/xxu/*.v'
ls: /home/xxu/*.v: no such file or directory
主要问题是好像shell 不认 "*.v"
怎么回事? |
c****p 发帖数: 6474 | 4 为啥非要把那个pattern用什么东西括起来呢。。。
ls -l $LS_DIR/*.v
不行么?
【在 a*****8 的大作中提到】 : 还是不行。 : 我把 $#/bin/sh -x 开关打开,运行结果如下: : +LS_DIR=/home/xxu : +ls -l '/home/xxu/*.v' : ls: /home/xxu/*.v: no such file or directory : 主要问题是好像shell 不认 "*.v" : 怎么回事?
|
a*****8 发帖数: 261 | 5 还是不行。
换句话说,就是在bash 里,
$#/bin/sh -f
ls -l /home/xyz/*.v
就会报错。在csh里没问题:
$#/bin/csh -f
ls -l /home/xyz/*.v
这是为什么呢?
【在 c****p 的大作中提到】 : 为啥非要把那个pattern用什么东西括起来呢。。。 : ls -l $LS_DIR/*.v : 不行么?
|
X****r 发帖数: 3557 | 6 才发现你加了-f参数。有了这个当然bash不展开*了。
【在 a*****8 的大作中提到】 : 还是不行。 : 换句话说,就是在bash 里, : $#/bin/sh -f : ls -l /home/xyz/*.v : 就会报错。在csh里没问题: : $#/bin/csh -f : ls -l /home/xyz/*.v : 这是为什么呢?
|
X****r 发帖数: 3557 | 7 不括起来LS_DIR的值里有空格就错了。
【在 c****p 的大作中提到】 : 为啥非要把那个pattern用什么东西括起来呢。。。 : ls -l $LS_DIR/*.v : 不行么?
|
a*****8 发帖数: 261 | 8 是滴。去掉-f 后就可以了。
请问,-f 实干什么的?我也是超别人地
谢谢
【在 X****r 的大作中提到】 : 才发现你加了-f参数。有了这个当然bash不展开*了。
|
t****t 发帖数: 6806 | 9 man bash
【在 a*****8 的大作中提到】 : 是滴。去掉-f 后就可以了。 : 请问,-f 实干什么的?我也是超别人地 : 谢谢
|