これは私の実際のファイルWASfileです
#!/bin/sh
sed -i '/^ *$/d' WASfile
sed -i -e '/user=/,/group_1=/{w /tmp/1' -e 'd}' /home/wasdm/WASfile;
Script to Add
read -p "Press [Enter] to continue for Installation"
ここで、上記の[ 追加するスクリプト]に次のスクリプトを配置してから、WASfileをスクリプト(多くのスクリプトまたはコマンドの組み合わせ)として実行します。
#!/usr/bin/awk -f
BEGIN { FS="=" }
NR==FNR { a[$1]=$0; next }
$1 in a { $0=a[$1] }
/^#/ { var=$1; sub(/^#/, "", var); if(var in a) { $0=a[var] } }
1
以下のように組み合わせて使用したり、両方のスクリプトを組み合わせるより良い方法を使用したいと思います。
#!/bin/sh
sed -i '/^ *$/d' WASfile
sed -i -e '/user=/,/group_1=/{w /tmp/1' -e 'd}' /home/wasdm/WASfile;
#!/usr/bin/awk -f
BEGIN { FS="=" }
NR==FNR { a[$1]=$0; next }
$1 in a { $0=a[$1] }
/^#/ { var=$1; sub(/^#/, "", var); if(var in a) { $0=a[var] } }
1
read -p "Press [Enter] to continue for Installation"
スクリプトを実行できません。
そこで、AWKscriptを別のファイルに抽出して、そのAWKscriptを実行しようとしました。ただし、問題は抽出後、メインスクリプトWASfile自体が破損または失敗することです。
#!/bin/sh
sed -i '/^ *$/d' WASfile;
sed -i -e '/\/usr\/bin\/awk/,/baba/{w 1' -e 'd}' WASfile;
#!/usr/bin/awk -f
BEGIN { FS="=" } NR==FNR { a[$1]=$0; next } $1 in a { $0=a[$1] } /^#/ { var=$1; sub(/^#/, "", var); if(var in a) { $0=a[var] } } 1
baba
read -p "Press [Enter] to continue for Installation"
以下のように
#./WASfile
sed: -e expression #1, char 24: missing command
./WASfile: line 6: BEGIN: command not found
./WASfile: line 7: {: command not found
./WASfile: line 7: next: command not found
./WASfile: line 8: in: command not found
./WASfile: line 9: syntax error near unexpected token `/^#/,'
./WASfile: line 9: `/^#/ { var=$1; sub(/^#/, "", var); if(var in a) { $0=a[var] } } '
WASfile
が、同じスクリプト内で同じ名前のファイルを2回(WASfile
およびフルパスで/home/wasadm/WASfile
)編集していると説明します。同じファイルである必要があり、本当に自己修正コードを作成したいですか?または、スクリプトと編集中のファイルに同じ名前を非実用的に使用しましたか?---自己修正コードを使用しないよう強くお勧めします。正しく機能させるには、さらに多くの知識が必要です。