获取linux中的当前目录作为参数
我正在学习Linux脚本,并尝试设置一个函数来查找当前目录中的所有文件。我知道我可以使用ls,但我想知道是否有办法将当前目录作为命令获取并将其传递给参数获取linux中的当前目录作为参数,linux,Linux,我正在学习Linux脚本,并尝试设置一个函数来查找当前目录中的所有文件。我知道我可以使用ls,但我想知道是否有办法将当前目录作为命令获取并将其传递给参数 #!/bin/bash check_file() { for f in $1: do echo $f done } check_file pwd 这只是打印出pwd:,显然不是它。pwd变量正是您想要的。 因此,只需将pwd替换为$pwd,就可以执行命令并将其在脚本中的输出用作参数,只需使用反引号。 在您的情况下,它将是: c
#!/bin/bash
check_file() {
for f in $1:
do
echo $f
done
}
check_file pwd
这只是打印出pwd:,显然不是它。
pwd
变量正是您想要的。
因此,只需将
pwd
替换为$pwd
,就可以执行命令并将其在脚本中的输出用作参数,只需使用反引号。
在您的情况下,它将是:
check_file `pwd`
一个更现代的变体是使用
$(
..)
符号(可以在需要时嵌套,并扩展到$(
和匹配)
之间的命令输出),而不是反引号,例如
check_file $(pwd)
(但是,$PWD
也会起作用,因为shell会维护其PWD
变量,请参阅)
也请阅读(可以批评,但这是一个好的开始)。$PDW当前工作目录存储在名为$PWD的变量中
check_file()
{
for f in "$(ls $PWD)"
do
echo "$f"
done
}
check_file
显示完整的工作目录名
echo "$PWD"
basename "$PWD"
显示工作目录名称
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