here-document

Bash 4:一致する「)」の検索中に予期しないEOFが発生しました。
here-document

Bash 4:一致する「)」の検索中に予期しないEOFが発生しました。

私のスクリプトの非常に単純化されたバージョンです。 #!/usr/bin/env bash example="$(bash -rs <<'BASH' -- 'This has been executed in restricted shell' echo "$1" BASH )" echo "$example" Bashバージョン5.1.4を使用しているシステムでは問題なく実行されます。ただし、bashバージョン4.0.44を使用する他のシステムではエラーが発生します。 line 2: unexpected EOF while lookin...

Admin

bashスクリプトの外部から印刷されたファイルに変数を渡すには?
here-document

bashスクリプトの外部から印刷されたファイルに変数を渡すには?

以下を含む変数v="c d e f g"とファイルがあるとしましょう。 line1 $v line3 ここでこの記事で説明したように、2行目の変数の内容を使用してこのファイルを印刷するbashスクリプトを取得するにはどうすればよいですか? #!/bin/bash v="c d e f g" cat << EOF line1 $v line3 EOF 出力: line1 c d e f g line3 ...

Admin

「ここに文書化」を1行のコマンドとして使用しますか?
here-document

「ここに文書化」を1行のコマンドとして使用しますか?

インストールする一部のソフトウェアでチェックサムを実行するコマンドは次のとおりです。 echo "85762db0edc00ce19a2cd5496d1627903e6198ad850bbbdefb2ceaa46bd20cbd install.sh" | sha256sum -c sha256sumしかし、コマンドと一緒に使用したい最初。したがって、私たちはheredocを使用して以下を達成します。 sha256sum -c << EOF 85762db0edc00ce19a2cd5496d1627903e6198ad850bbbdefb2ce...

Admin

SSHスクリプトによるディレクトリのテスト - 何も起こりません
here-document

SSHスクリプトによるディレクトリのテスト - 何も起こりません

私は通常、ここのドキュメントを使ってこのようなサーバースクリプトを実行します。 ただし、ディレクトリが存在するかどうかをテストすると、テストが失敗してもスクリプトは続行されます。なぜですか? ssh $user@$ip /bin/bash <<SCRIPT if [[ ! -d ~/.debfiles ]];then echo "Error: debfiles doesnt exist" 2> ~/error.txt exit 1 fi SCRIPT 私はこれを私のローカルコンピュータで実行しています、問題のサーバーは仮想マシ...

Admin

sshコマンドでheredocを使用する方法
here-document

sshコマンドでheredocを使用する方法

SSHを介してリモートコンピュータに接続し、一連のコマンドを実行するbashスクリプトがあります。 外部スクリプトのheredocが正しくソートされていないようで、エラーが発生し続けます。 -bash: line 49: warning: here-document at line 6 delimited by end-of-file (wanted `MOD') スクリプトは次のとおりです。 ssh -i "$master_private_key" "$master_username@$master_public_ip" << EOF ...

Admin

スクリプトファイルを区切られた文書としてsedに渡すには?
here-document

スクリプトファイルを区切られた文書としてsedに渡すには?

これにより、「a」が「A」に変換されます。 sed 's/a/A/g' <(echo "foobar") foobAr これは、各コレクションを大文字で始めるために必要なコマンドを提供します。 $ cat << EOF s/a/A/g s/e/E/g s/i/I/g s/o/O/g s/u/U/g EOF 私がやりたいことは、各コレクションが大文字で表示されるように最初の例を拡張し、2番目の例に示すようにここでドキュメントを使用することです。どんな提案がありますか? 男性: sed [オプション]... {スクリプトのみ、他のスクリプ...

Admin

HEREDOCを使ってsudoを実行できますか?
here-document

HEREDOCを使ってsudoを実行できますか?

編集:@Kusalanandaの回答以降に修正された例です。私のすべての状況はより複雑でした。複数のコマンドと変数定義が必要です) suルートではなくパスワードを入力したくないため使用できません 同僚のスクリプトでsuコードを模倣しようとしました。 # script runs as root su - oracle -- "export DATA=$val; cat <<CHK test CHK" Password: test 以下は機能しません(エラー出力)。 $ export val=534 $ sudo -i -u oracle -- ...

Admin

Podmanを実行できるようにheredocを提供する方法は?
here-document

Podmanを実行できるようにheredocを提供する方法は?

実行時にはbuildah主にheredocを使用します。 ctr=$(buildah from alpine:3); buildah run $ctr sh -- <<EOF apk update; apk add git; EOF buildah commit $ctr heredoc_demo; しかし、Podmanで同じことをしようとすると、次のエラーが発生します。 警告入力デバイスがTTYではありません。 --tty および --interactive フラグが正しく動作しないことがある あなたは得ることができます、 ❯...

Admin

ここでドキュメントの結果をどのようにリンクできますか?
here-document

ここでドキュメントの結果をどのようにリンクできますか?

このスクリプトがあります。 while read $item; do # Some bash logic here done <<< "$({ cat /path/to/some/file; echo; })" 今、私はいくつかのディレクトリの名前を見つけてfindループと一緒にcat渡したいと思いますwhile。 つまり、私は以下が欲しい: cat1つの文書 findいくつかのディレクトリ 接続結果 whileここに文書としてループに入力してください。 私はこの時点で詰まった。 whileロジックを繰り返すことは良いアプロー...

Admin

ここで<<を使用して文字列をフォーマットする一般的な方法ではなく、制限された文字列(<<-)を使用することを選択した場合はいつですか?
here-document

ここで<<を使用して文字列をフォーマットする一般的な方法ではなく、制限された文字列(<<-)を使用することを選択した場合はいつですか?

The - option to mark a here document limit string (<<-LimitString) will suppress leading tabs (but not spaces) in the output. 「here」メソッドを使用してコマンドを処理するときに、誰かが先行タブを削除したいのはなぜですか?出力の読みやすさに関するものですか、それとも出力を別のものに渡したい場合は、出力のクリーンアップに関するものですか? ...

Admin

区切り文書内で実行されているスクリプトの終了コードをキャプチャすることはできません。
here-document

区切り文書内で実行されているスクリプトの終了コードをキャプチャすることはできません。

DockerコンテナのHeredocで実行されているスクリプトの終了コードをキャプチャしようとしました。 python:3.7ロードされたDockerコンテナを起動し、そこでheredocを実行するためにこのコマンドを実行するとします。 docker run -v $PWD:/workspace -w /workspace --rm -i python:3.7 <<-EOF ./script.sh echo $? EOF script.sh次のように仮定しましょう。 echo 'Before' exit 1 echo 'Afte...

Admin

HEREDOCを使用してシェルスクリプト内で他のユーザーと配列を繰り返すことは機能しません。
here-document

HEREDOCを使用してシェルスクリプト内で他のユーザーと配列を繰り返すことは機能しません。

スクリプトを実行するときに複数のユーザー内で一連のタスクを実行したいので、HEREDOCを使用してこれらのタスクを実行していますが、任意の回避策を試してもHEREDOC内部ループで私の値を参照することはできません。 。 この場合、最初の行を印刷して終了します。 #!/bin/bash func () { test=("$@") sudo su - someuser <<- EOF echo "${test[*]}" for i in "${test[@]}" ; do echo "$i" done EOF...

Admin

このドキュメントでBashスクリプトロジックを使用できますか?
here-document

このドキュメントでBashスクリプトロジックを使用できますか?

SSHを介してアクセスし、.confファイルのKey-Valueペア構成パラメータが設定されていることを確認する必要がある50のLinuxサーバーのリストがあります。キーと値のペアが存在することを確認する必要があります。キーと値のペアが存在する場合は、ブール値をFALSEに変更する必要があります。 Key-Valueペアが存在しない場合は、FALSEに設定された値でKey-Valueペアを生成する必要があります。 SSH部分には問題はありません。ここでドキュメントを使用してリモートサーバーでコマンドリストを実行します。ただし、この特定のソリューションでは、キ...

Admin

このループが空のセットで実行されるのはなぜですか?
here-document

このループが空のセットで実行されるのはなぜですか?

空のディレクトリを作成し、次のコードを実行します。 find /empty_directory -mindepth 1 -maxdepth 1 -type d | while read dir; do echo "Simple find: $dir" done printf '%s\n' '-----' # Safer than echo ----- while read dir; do echo "HereDoc find: $dir" done <<< "$(find /em...

Admin