Bash

bash:URL:找不到命令

  • June 22, 2022

我在 bash 中不斷收到以下錯誤(使用 Windows):

$ URL = "https://nyc-tlc.s3.amazonaws.com/trip+data/yellow_tripdata_2022-01.parquet"
bash: URL: command not found

我試圖在 bash 中執行的完整命令是:

URL = "https://nyc-tlc.s3.amazonaws.com/trip+data/yellow_tripdata_2022-01.parquet"

python ingest_data.py \
 --user=root \
 --password=root \
 --host=localhost \
 --port=5432 \
 --db=ny_taxi \
 --table_name=yellow_taxi_trips \
 --url=${URL}

執行完整的命令會執行 ingest_data.py 文件,但不會發生下載(我認為是因為這個URL: command not found錯誤。

如果我執行 ingest_data.py 則什麼也不會發生 - 類似於執行上面的完整命令。

使用 URL 的 ingest_data.py 文件的“重要”部分是os.system(f"wget {url} -0 {flatfile_parquet}")

def main(params):
   user = params.user
   password = params.password
   host = params.host
   port = params.port
   db = params.db
   table_name = params.table_name
   url = params.url
   flatfile_parquet = 'output.parquet'
   
   # download the parquet file
   os.system(f"wget {url} -0 {flatfile_parquet}")
   
   # connect to server
   engine = create_engine(f'postgresql://{user}:{password}@{host}:{port}/{db}')

我一直在尋找說要使用 curl 但我不想在 bash 中下載文件的執行緒,我想將 url 儲存在一個變數中,然後在ingest_data.py文件中使用它。

任何建議表示讚賞,我是 bash 的菜鳥

您的第一行有語法錯誤。您不能在“=”周圍留空格,否則 BASH 將嘗試將第一個單詞作為命令執行。考慮:

$ a = "xx"
bash: a: command not found
$ echo = "xx"
= xx
$ a="xx"
$ echo "$a"
xx

你應該使用:

$ URL="https://nyc-tlc.s3.amazonaws.com/trip+data/yellow_tripdata_2022-01.parquet"

引用自:https://unix.stackexchange.com/questions/707131