我的問題是這樣的:我有這樣的bash腳本:bash腳本代碼C程序中
#!/bin/bash
IFSBAK=$IFS
if [ "$TXTEXT" = "" ];
then
CMD="find . -iname \"*.txt\" -or -iname \"*.text\""
else
CMDTEMP="find . "
IFS=":"
for i in $TXTEXT
do
CMDTEMP="${CMDTEMP} -iname \"*.${i}\" -or"
done
IFS=$IFSBAK
CMD=${CMDTEMP%-or}
fi
FILES=$(eval $CMD)
OUTPUT=$1
for f in $FILES
do
VAR=$(grep -ae [a-zA-Z0-9] "$f" | tr -cs "[:alnum:]" "\n")
IFS=$' \n\t-?=!*][.\",();\'\`\´:'
for v in $VAR
do
echo $v >> "${OUTPUT}"
done
IFS=$' \n\t'
done
,我需要插入一個C程序中的代碼。我嘗試在單行上重新編寫所有腳本,並直接使用shell進行測試,並且它可以正常工作,但是我在引用和轉義方面遇到問題,試圖將其作爲system()調用的參數使用。 你能建議我一個出路嗎?
謝謝您的幫助
似乎是一個強大的壞主意,插入多shell代碼轉換成二進制 – Anycorn 2011-04-01 18:37:31
+1 @Anycom - 任何時候,你認爲你需要做這樣的事情嵌入30行shell腳本在你的程序,你需要重新考慮一下設計。 – 2011-04-01 18:38:34
我已經知道這是一件可怕的事情,但我不得不按照要求去做。無論如何,謝謝你 – Peter 2011-04-01 18:47:33