Scripting
添加目錄的簡單腳本
我試圖創建一個監視 /media/user 目錄的腳本。當插入新 USB 時,腳本將執行並將新目錄添加到現在使用新 USB 驅動器的程序中。
例如:
for D in ls -l /media/user do directory add -d D done
目前,該腳本只是在字面上添加了與目錄中的
/media/user/D
目錄相同的次數,而/media/user
不是特定目錄名稱/media/user/D
該命令
directory add -d
添加目錄,我希望它添加/media/user/drive1
等/media/user/drive2
謝謝我顯然是新的!
這是非常基本的 bash 內容。讓我們看看你的腳本。
for D in ls /l /media/user do
您使用循環的變數 D 創建一個 for 循環
ls
/l
/media/user
所以,它將執行3次。
directory add -d D
我不知道程序
directory
應該做什麼;我不知道。但是,它以完全相同的方式執行了 3 次,使用相同的參數:
add
-d
D
done
你的for循環結束。
這不完全是您描述的行為;它總是會添加 3 次 litterally
D
。現在進行改進。
您不想精確執行 3 次,但您想為
/media/user
. 因此,一個明顯的選擇是使用$(ls -l /media/user)
. 現在,我不知道您的directory
程序期望什麼樣的格式作為參數,但如果不是-rw-r--r-- 1 ljm users 27164672 Jun 19 00:30 mikrotik-6.47.10.iso
那麼你可能不想要這個
-l
選項。此外,解析的輸出ls
通常是一個壞主意。所以,你可能正在尋找的是for D in /media/user/* do
下一步 id 你的
directory
程序。它總是D
作為最後一個參數呼叫。不是 的值D
,那就是$D
。這意味著您可能想要directory add -d $D
但是,如果目錄名中有空格,這會將目錄名分成兩個參數。所以需要引用:
directory add -d "$D"
希望這能讓你在正軌上做得更好。