我正在学习 Linux 脚本并尝试设置一个函数来查找当前目录中的所有文件。我知道我可以使用 ls 但我想知道是否有办法将当前目录作为命令获取并将其传递给参数。
#!/bin/bash
check_file() {
for f in $1:
do
echo $f
done
}
check_file pwd
这只是打印出 pwd:,这显然不是。
我正在学习 Linux 脚本并尝试设置一个函数来查找当前目录中的所有文件。我知道我可以使用 ls 但我想知道是否有办法将当前目录作为命令获取并将其传递给参数。
#!/bin/bash
check_file() {
for f in $1:
do
echo $f
done
}
check_file pwd
这只是打印出 pwd:,这显然不是。
PWD
变量完全符合您的要求。所以只需替换pwd
为$PWD
,你就完成了
要执行命令并在脚本中使用其输出作为参数,只需使用反引号。在您的情况下,它将是:
check_file `pwd`
一个更现代的变体是使用$(
...)
表示法(可以在需要时嵌套,并在中间$(
和 match之间扩展为命令的输出)
)而不是反引号,例如
check_file $(pwd)
(但$PWD
也可以工作,因为 shell 维护它们的PWD
变量,请参阅Posix shell)。
另请阅读高级 bash 脚本指南(可能会受到批评,但这是一个好的开始)。
$PDW
当前工作目录存储在名为 $PWD 的变量中
check_file()
{
for f in "$(ls $PWD)"
do
echo "$f"
done
}
check_file
显示完整的工作目录名称
echo "$PWD"
显示工作目录名称
basename "$PWD"
也可以使用符号 *
是当前工作目录中文件列表的快捷方式。
echo *
循环遍历它们:
for item in *
do
echo "$item"
done
函数循环
check_file()
{
for f in *
do
echo "$f"
done
}
check_file
将当前目录名称存储在变量中并在函数中使用
Var=$(basename "$PWD")
func()
{
echo $1
}
func $Var