[英]Can't run commands from bash script in for-loop
我正在嘗試創建一個 bash 腳本,該腳本讀取文件夾中的子文件夾並將子文件夾用作 python 程序的輸入,但由於某種原因,它無法識別一些簡單的命令。
因此,作為參考,我的 python 程序接受兩個輸入:它所接受的子文件夾(文件夾中必須只有文件)和 output 文件名。
#!/bin/bash
PATH=/foo/bar/*
for folder in $PATH; do
echo "${folder##*/}"
(cat "${folder##*/}" output.txt) | python3 program.py
done
我已經在命令行中單獨運行了該程序,並且它已經運行了很多次,但由於某種原因,它沒有。
這是生成的 output:
$ bash fileread.sh
> File1
> fileread.sh: line 6: cat: command not found
> fileread.sh: line 6: python3: command not found
> File2
> fileread.sh: line 6: cat: command not found
> fileread.sh: line 6: python3: command not found
顯然, echo
命令有效,但不知何故其他兩個停止工作
PATH
是一個保留變量。 通過將其用於您自己的目的,bash 再也找不到命令了。 只需使用不同的名稱。
此外,如果你想存儲一個列表,IMO 使用數組更有意義:
p=(/foo/bar/*)
for folder in "${p[@]}"
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.