我制作了一个通用的bash脚本,其输入$ 1是它想要通过的文件模式。现在我有
for entry in ./$1; do
echo "$entry"
done
但是当我运行时,我得到了
$ ./stuff.sh PRM*
./PRM.EDTOUT.ZIP
虽然有许多模式PRM *的文件。有没有办法在命令行args中指定此模式并正确列出相同模式的所有文件?
答案 0 :(得分:4)
当您致电PRM*
时,./stuff.sh 'PRM*'
会被shell扩展为匹配的文件。
如果你想在没有扩展的情况下传递模式,那么你必须引用它:
for entry; do
echo "$entry"
done
但实际上,最好让shell扩展它(不要引用它,在示例中使用它),但是更改脚本以获取多个参数,如下所示:
for entry
没错,没有"在"在for
之后。没有必要。
默认情况下,for entry in "$@"; do
echo "$entry"
done
循环在缺少""的情况下使用位置参数。条款。
换句话说,上述内容相当于:
const orig = {
foo: {
bar: 1
}
}
const { foo } = orig;
console.log(foo.bar); // 1
console.log(orig.foo.bar); // 1
foo.bar++;
console.log(foo.bar); // 2
console.log(orig.foo.bar); // 2