5

我正在学习 Linux 脚本并尝试设置一个函数来查找当前目录中的所有文件。我知道我可以使用 ls 但我想知道是否有办法将当前目录作为命令获取并将其传递给参数。

#!/bin/bash


check_file() {
for f in $1: 
do
    echo $f
done
}

check_file pwd

这只是打印出 pwd:,这显然不是。

4

4 回答 4

10

PWD变量完全符合您的要求。所以只需替换pwd$PWD,你就完成了

于 2013-06-29T20:42:10.087 回答
5

要执行命令并在脚本中使用其输出作为参数,只需使用反引号。在您的情况下,它将是:

check_file `pwd`
于 2013-06-29T20:43:25.440 回答
4

一个更现代的变体是使用$(...)表示法(可以在需要时嵌套,并在中间$(和 match之间扩展为命令的输出))而不是反引号,例如

check_file $(pwd)

(但$PWD也可以工作,因为 shell 维护它们的PWD变量,请参阅Posix shell)。

另请阅读高级 bash 脚本指南(可能会受到批评,但这是一个好的开始)。

于 2013-06-29T20:47:57.313 回答
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
于 2018-06-01T01:59:32.393 回答