linux - 在 bash 脚本中找不到命令

标签 linux bash

我有一个包含一些文件的文件夹,其中包括“.bar”文件。现在我想制作一个 bash 脚本来找到这些“.bar”文件并创建一个同名的文件夹。但是我似乎无法正确使用语法。

我使用:

#!/bin/bash
PATH="folder"

for filename in ${PATH}/*.bar; do
    mkdir $(basename ${filename%.*})
done

当我在终端中使用它时它似乎工作正常,但是当我输入脚本时它失败并出现错误:“basename: command not found”和“mkdir: command not found”。我怎样才能让它发挥作用?

最佳答案

试试这个

#!/bin/bash
folderpath="folder"

for filename in "${folderpath}"/*.bar; do
    mkdir "$(basename "${filename%.*}")"
done

PATH 是一个内部 shell 变量,不应在您的 shell 脚本中使用。

关于linux - 在 bash 脚本中找不到命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50394616/

相关文章:

bash - 在ElasticSearch批量上传中,如何插入带有单引号的数据?

python - 使用 bash 或 python 或其他一些 linux 命令行工具创建一个 dovecot SHA1 摘要

python - 在挂载 Raspberry Pi 时自动将文件复制到 USB

c - 结构数组中每个元素的互斥锁

linux - 是否安装了颠覆

regex - 带有连接字段的 awk

linux - 获取不存在文件的数量

php - CSplit 不 split

linux - 使用 gnuplot 命令而不提示

linux - bash 脚本 echo 总是打印相同的空格