2016-04-02 8 views
0

私は最近、他の人と共有したい簡単なbashスクリプトを作成しました。だから私は、スクリプトを他の人が配置するフォルダ内のファイルを検索しようとしましたが、これはいくつかのファイルに対してうまくいきました。変数ではないbashスクリプトのテキストを置き換えます

私のスクリプトには、変数を受け入れないコマンドがありますが、渡されますが、コマンドでは置き換えられません。そのため、変数を使用する代わりに、自分のコンピュータ上にあるファイルへのパスを使用する必要がありました。

私は誰もがそのスクリプトを使用したいので、私はこれらのパスを置き換える方法が必要です。だから私はこれについて考えました:

他のファイルと同じコマンドを使用して、このファイルを探してください。次に、スクリプト内のファイルへのパスを、コマンドで見つかったパスに置き換えます。

私の問題は、私が望むものを見つけられなかったことです。ここに私のコードは次のとおりです。

#!/bin/bash 

#variables that store the paths 

dtree=$(find Downgrade -type f -iname DeviceTree*) 
ramdisk=$(find Downgrade -type f -iname *.dmg) 
kernel=$(find Downgrade -type f -iname kernelcache*) 

#the execution of the command. (Using normal EOF without ”” doesn’t replace the strings.) 

./irecovery -s <<"EOF" >/dev/null 

/send Downgrade/DeviceTree.n90ap.img3 #This needs to be replaced by $dtree 
devicetree 
/send Downgrade/048-2441-007.dmg #This needs to be replaced by $ramdisk 
ramdisk 
/send Downgrade/kernelcache.release.n90 #This needs to be replaced by $kernel 
bootx 
/exit 
EOF 

答えて

0

私はあなたの質問についてはよく分からないですけど、あなたはsed

sed "s/old/new/g"

を使用して文字列を交換してくださいすることができます
関連する問題