0
我試圖使用查找和-exec處理文件和要調用一個shell腳本,但似乎無法弄清楚如何將變量傳遞給該腳本:傳遞參數找到腳本
DIR_TEMP='/tmp'
NAME='foo'
TARGET='/tmp/target'
find . -type f -name \*.ko.gz -exec /bin/sh -c ${DIR_TEMP}/${NAME}.sort "$TARGET" {} \;
/tmp/foo.sort
#!/bin/sh
echo "called, 0 :$0:, 1 :$1:, 2 :$2:" >> /tmp/debug.txt
所有我似乎得到的內容:
called, 0 :/tmp/foo.sort:, 1 ::, 2 ::
任何幫助,將不勝感激!
這似乎已經解決了這一問題,感謝格倫! – user1646428
這可能純粹是理論上的問題,但find的某些實現不允許以這種方式使用{}。對於那些,你可以執行'find ... -exec/bin/sh -c「$ DIR_TEMP/$ NAME.sort $ TARGET \」$ 1 \「」_ {} \;' –
好的威廉。你需要轉義'\ $ 1'來保護它 –