私の割り当てをエラーことを尋ねる:私が思いついたシェルスクリプトは
Create a directory
~/UnixCourse/scriptAsst
. Turn the two-line version, above, of the substitution commands into a shell script,subst1
taking three parameters: the string to be replaced the string with which to replace it the name of the file in which to make the substitution.For example,
`~/UnixCourse/scriptAsst/subst1 foo bar myFile.txt`
should replace all occurrences of
foo
in the filemyFile.txt
bybar
, leaving the original file asmyFile.txt.bak
.Similarly,
`~/UnixCourse/scriptAsst/subst1 abc "" aardvark.dat`
should remove (replace by the empty string) all occurrences of
abc
in the fileaardvark.dat
with nothing, leaving the original file asaardvark.dat.bak
.
私のコードは次のとおりです。私は実行しようとすると
#!/bin/bash
set p1 = "$1"
shift
set p2 = "$1"
shift
set p3 = "$*"
echo $p1
echo $p2
echo $p3
if grep "$p1" "$p3" > /dev/null; then
mv "$p3" "$p3.bak"
sed "s/$p1/$p2/g" "$p3.bak" > "$p3"
fi
:
./subst1 foo bar myFile.txt
を私は入れません:
grep: : No such file or directory
助けてください!私は何を間違えているのですか?
スクリプトは 'echo $ p1'のために何を印刷しますか? – DVK
その完全に空白 – Sam
あなたがコピーして*正確に*ペーストしましたか?エラーはあなたの 'grep'コマンドの後ろに': 'があります。 – Kevin