我正在学习Linux脚本并尝试设置一个查找当前目录中所有文件的函数。我知道我可以使用ls,但我想知道是否有办法将当前目录作为命令并将其传递给参数。
#!/bin/bash
check_file() {
for f in $1:
do
echo $f
done
}
check_file pwd
这只是打印出pwd:,显然不是它。
答案 0 :(得分:8)
PWD
变量完全符合您的要求。
因此,只需将pwd
替换为$PWD
,即可完成
答案 1 :(得分:4)
要执行命令并在脚本中将其输出用作参数,只需使用返回引号即可。 在你的情况下,它将是:
check_file `pwd`
答案 2 :(得分:3)
更现代的变体是使用$(
... )
表示法(可以在需要时嵌套,并在$(
和)
之间扩展到命令的输出。匹配check_file $(pwd)
)而不是反引号,例如
$PWD
(但PWD
也会有效,因为shell会保留{{1}}变量,请参阅Posix shell)。
另请阅读advanced bash scripting guide(可以批评,但这是一个好的开始)。
答案 3 :(得分:0)
$ 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