[英]Using a Wildcard Match as a Command Line Argument in Bash
我正在嘗試編寫一個 Bash 腳本來轉換一堆文件。
假設我有一個目錄/path/to/my files/
包含三個文本文件: a b.txt
、 c d.txt
和e.txt
(注意空格)
我需要能夠像這樣調用腳本:
$ ./myscript.sh /path/to/my\ files/*.txt
然后在 bash 中循環遍歷它們,像這樣處理它們:
dest='/desktop/'
for ARG in $@; do
/some/other/script $ARG $dest$ARG.new
done
它不必完全像這樣工作,任何最簡單的都會產生類似的結果
這是否滿足您的需求:
dest='/desktop/'
for ARG in "$@"; do
/some/other/script "$ARG" "$dest$ARG.new"
done
編輯:刪除 ARG 上的路徑
dest='/desktop/'
for ARG in "$@"; do
/some/other/script "$ARG" "$dest$(basename "$ARG").new"
done
Bash 在執行命令之前會進行通配符擴展,也就是說,它將將該表達式替換為匹配文件的列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.