linux shell的命令识别
问题描述:
#!/bin/bash
for file in "ls /tmp/*"
do
echo $file
done
这一段代码可以输出tmp下的文件名
#!/bin/bash
for file in "ls"
do
echo $file
done
可是这样就只会输出ls,想知道shell脚本是如何识别命令和普通字符
菜鸟一只
答
其实不是 ls 的问题,而是文件遍历的问题,第一个代码去掉 ls 也是能正确运行的。
for file in "/tmp/*"
do
echo $file
done
for 循环必须是遍历一个集合对象。你要想让 ls 生效需要按照命令来执行,换成命令执行符号 Tab 键上面那个符号:
for file in `ls`
do
echo $file
done