最新記事

以下を試しました。失敗した理由と正しく実行する方法は?
bash
read

以下を試しました。失敗した理由と正しく実行する方法は?

スクリプトは3行の出力を出力します。 $ Filename /a/Resource/.Filename.man.markdown .Filename.man.markdown .Filename man.markdown 私がしたいこと 3行の出力を別の変数に保存したいのですが、どうすればよいですか? 以下を試しました。失敗した理由と正しく実行する方法は? 最初の試行失敗 Filename /a/Resource/.Filename.man.markdown | IFS=$'\n' read -r File1 Filename1 Extension1 echo "$File1 $Filename1 $Extension1" 2回目の試みに失敗しました $ IFS=$'\n' read -r File1 Filename1 Extension1 < <(Filename /a/Resource/.Filename.man.markdown) $ echo "$File1 $Filename1 $Extension1" .Filename.man.markdown

Admin

Bashを起動するときに参照を削除する方法は?
bash

Bashを起動するときに参照を削除する方法は?

起動するたびに、bashプロンプトの前に次のグリーティングが表示されます。 私のカップは愛でいっぱいです。 フラグの法則:木を叩く必要があるとき、世界はビニール、ノガード、アルミニウムで構成されていることに気づきます。 「ホンクif...」と書かれたバンパーステッカーが嫌いなら 私は合理的な人々と弁論し、慈悲深い人々と弁論します。しかし、私は暴君を許しません。 ——ウィリアム・ロイド・ギャリソン この(有用な)機能をどのように無効にできますか? またはマニュアルには/etc/bashrcこれがありません。~/.bashrc~/.bash_profile

Admin

なぜ家族全体がバックアップされますか?
bash
backup
cp
read

なぜ家族全体がバックアップされますか?

私のホームディレクトリにあるいくつかのファイルをバックアップしたいと思います。それは 私のホームルートディレクトリにある単純なファイル ~/worthaving.txtにリストされている私の家のいくつかのディレクトリ worthaving.txt 例: cloud work/web work/python 私はこのスクリプトを作成しました: #!/bin/bash srce=/home/poor dest=/run/media/poor/backup mkdir -p $dest cp -v $srce/* $dest/ # simple files while IFS= read -r worth do mkdir -p $dest/$worth cp -Rv $srce/$worth $dest/$worth # dirs that matters done < "$srce/worthsaving.txt" しかし、私が欲しいものだけでなく、私の家全体をpoorバックアップルートの下のディレクトリに保存しました。 何が問題なの?

Admin

-bash:ソース:コマンドが見つかりません[閉じる]
bash

-bash:ソース:コマンドが見つかりません[閉じる]

閉鎖。質問は〜です。無関係。現時点では回答は許可されていません。 問題の説明再現できない問題自然に消えているように見える(またはスペルエラーが修正された後に消える)記事は、将来の読者には役に立たない可能性が高いため、トピックから抜け出した記事です。 閉鎖1年前。 この問題を改善する 操作中にずっと問題が発生する機械がありました。すべてが台無しです。しかし、修正することができるのはこのエラーが表示されると思います... -bash: ource: command not found ...ホストにSSHで接続するとき。他のユーザーにこれを実行しても、これが発生します。su次のようになります。 $ sudo su - Last login: Fri Dec 9 22:57:32 UTC 2022 on pts/1 -bash: ource: command not found 私はandを見ましたが、どこにも「source」という文字列が表示されません/etc/profile。/etc/bashrcまたどこを見るべきですか?set -xログインスクリプトをデバッグするために設定できるものはありますか?

Admin

応答コードが常に1を表示し、ループから外れていない状態でifステートメントが正しく機能するようにするにはどうすればよいですか?
linux
bash
shell-script

応答コードが常に1を表示し、ループから外れていない状態でifステートメントが正しく機能するようにするにはどうすればよいですか?

アプリケーションが正常に再起動されたことを確認しようとしています。アプリケーションの停止に問題はありませんが、アプリケーションの起動に問題があります。アプリケーションは起動しますが、スクリプトは実行され続け、サイトのバックアップ中はループは終了しません。 $aem_curl別のスクリプトを実行して成功すると、次の結果を表示し、応答コードを提供するvarがあります。ただし、失敗した場合は応答コードが表示されます。CheckHttp OK: 200, found /crxde/ in 11038 bytes0CheckHttp CRITICAL: 5032 私のコード: aem_curl="./check-http-aem.rb -h localhost -P 4502 -p /crx/de/index.jsp --response-code 200 -q 'crxde' -t 30" STOP_TMOUT=15 echo "starting $AEM_APP this will take a few mins..." | ${LOG_FILE} sudo $restart_aem start count=0 while true; do echo "Waiting for AEM to start try #${count} ..." | ${LOG_FILE} $aem_curl if [ $? -eq 0 ]; then echo "AEM has started! status code - $?" | ${LOG_FILE} && break else echo "AEM has not started yet - status code is $?" | ${LOG_FILE} fi if [ "$count" -eq "${STOP_TMOUT}" ]; then MESSAGE="Already waited 10 minutes for AEM start something is amiss." | ${LOG_FILE} exit 1 fi count=$(($count+1)) sleep 20 done 私の結果: Waiting for AEM to start try #0 ... CheckHttp CRITICAL: Request error: Failed to open TCP connection to localhost:4502 (Connection refused - connect(2) for "localhost" port 4502) AEM has not started yet - status code is 1 Waiting for AEM to start try #1 ... CheckHttp CRITICAL: 503 AEM has not started yet - status code is 1 Waiting for AEM to start try #2 ... CheckHttp CRITICAL: 503 ... Waiting for AEM to start try #19 ... CheckHttp CRITICAL: 200, did not find /'crxde'/ in 11038 bytes: CRXDE LiteCRXDE LiteAdmin

ユーザーは許可なくファイルをどのように実行できますか?
bash
command-line
permissions
users
executable

ユーザーは許可なくファイルをどのように実行できますか?

エコーされるBashスクリプトを作成しました。「こんにちは世界」。テストユーザーも作成しましたが、単発、使用adduser。 以下のようにファイルを実行する権限を持つ人は誰もいませんls。 $ ls -l hello.sh -rw-r--r-- 1 george george 19 Mai 29 13:06 hello.sh 上記から、ファイルの所有者が誰であるかがわかります。聖ジョージ読み取りおよび書き込み権限のみがあり、実行権限はありません。しかし、次のようにログインしました。聖ジョージスクリプトを直接実行できます。 $ . hello.sh Hello World スノーバーとして、私は次のようにログインしました。単発、読み取り権限のみが、まだファイルを実行できます。 $ su bob Password: $ . /home/george/testdir/hello.sh Hello World どうなりますか?

Admin

bashスクリプトのforループでパラメータ変数を使用するには?
bash
shell-script

bashスクリプトのforループでパラメータ変数を使用するには?

一日中これのために苦労しました。だから私は次のスクリプトを持っています: 端末コマンドは次のようになります。 script.sh ARG1 ARG2 ARG3 ARG4 スクリプトは次のとおりです。 totalargs=$# for ((i=2; i<=totalargs; i+=2)); do curl somewebsite.com | grep "$i" done 私が達成したいのは、他のすべてのパラメータのgrepですが、パラメータをループに入れるために$ iを使用できないようです。ループが繰り返されるために提供される場合は、2、4にする必要があります。 どんなアイデアがありますか? bashスクリプトにはとても新しいものなので、どんなガイドラインにも感謝します。ありがとうございます!

Admin

bashを使用してコマンドに子プロセスを渡す方法
bash
shell-script
subshell
process-substitution

bashを使用してコマンドに子プロセスを渡す方法

複数の出力を単一のコマンドにパイプ処理するために子プロセスを使用しようとしています。私のコマンドは次のとおりです(短縮バージョン)。 cat "$1" one=cat "$1" の出力はcommand <(echo "foo")次のとおりです。 foo /dev/fd/63: Permission denied 機能するため、cat "$1"関数に子プロセスの出力を読み取る権限があると仮定しますが、それを変数に入れようとすると権限が拒否されます。なぜこれが起こり、解決策がありますか?

Admin

Linux bashでパイプをオーバーライドする方法はありますか?
linux
bash
pipe

Linux bashでパイプをオーバーライドする方法はありますか?

|Bashでコマンドのデフォルト動作をカスタムコマンドに置き換える方法があるかどうか疑問に思います。パイプコマンドをオーバーライドしたいです。 これは厳密に言えば、技術的で理論的な質問です。パイプラインが使用されるたびに、ランダムなユースケースが記録されます。 たとえば、 echo "foo" |grep o 次を返します。 Fああ echo "foo"ただし、+タイムスタンプもpipe.logログファイルに保存します。

Admin

Fedora 18から36にアップグレードした後、マウスをクリックすると、XTermシェル(readline)でカーソル位置が停止します。
bash
fedora
mouse
xterm
readline

Fedora 18から36にアップグレードした後、マウスをクリックすると、XTermシェル(readline)でカーソル位置が停止します。

次の制御シーケンスを使用して設定し、XTermのシェル(BASH)でコマンドラインをクリックします。カーソルをこの位置に移動します。。少なくとも私が持っていた古代のFedora 18ではそれがうまくいきました。 (私は非常に長いパイプラインを作成する傾向があるため、この機能は長年使用して完全に慣れてきたので、私にとっては素晴らしく重要です。) 「ターゲットクリック」機能を有効にするにはどうすればよいですか(通常はPS1BASH変数で): \[\e[?2001;2002;2003;2004;2005;2006s\e[?2001;2002;2003h\] そして、元の保存状態を復元します(通常PS0はシェルで実行されるコマンドに影響を与えないため)。 \[\e[?2001;2002;2003;2004;2005;2006r\] 実験に使用したエイリアスは次のとおりです。 alias tmouseon='printf -- '\''\e[2001;2002;2003;2004;2005;2006s\e[?2001;2002;2003h'\''' alias tmouseoff='printf -- '\''\e[?2001;2002;2003;2004;2005;2006r'\''' 以下は私のXTerm設定です。一部はこの問題に関連している可能性がありますが、XTermのマニュアルによると、私の設定に問題を引き起こす可能性がある他のオプションやオプションが見つかりませんでした。また、xrdb -merge私のXを知らないことに注意してください。リソースファイルを使用.xinitrcしましたがxrdb、ディストリビューションのデフォルト設定が気に入らず、ディストリビューションへのフルアクセスを望んでいたため、何年も問題なく使用してきました。 ! Init XTerm.ptyInitialErase: true XTerm.waitForMap: true ! Buffers XTerm.buffered: true XTerm.bufferedFPS: 100 XTerm.maxBufSize: 131072 XTerm.minBufSize: 8192 ! TERMINAL ! Name XTerm.VT100.termName: xterm-256color ! Session XTerm.VT100.loginShell: true ! Features XTerm.VT100.allowFontOps: true XTerm.VT100.allowMouseOps: true XTerm.VT100.allowTcapOps: true XTerm.VT100.allowTitleOps: true XTerm.VT100.allowWindowOps: true XTerm.VT100.c132: true ! Input XTerm.VT100.backarrowKey: true XTerm.VT100.backarrowKeyIsErase: true ! Scrolling XTerm.VT100.scrollBar: false XTerm.VT100.scrollTtyOutput: false XTerm.VT100.allowScrollLock: true ! Screen buffer XTerm.VT100.saveLines: 10000 ! Alternate screen XTerm.VT100.titeInhibit: true XTerm.VT100.tiXtraScroll: true ! Visual bell XTerm.VT100.visualBell: true XTerm.VT100.visualBellLine: true XTerm.VT100.visualBellDelay: 150 ! Pointer shape XTerm.VT100.pointerShape: hand1 ! Margin bell XTerm.VT100.marginBell: true XTerm.VT100.nMarginBell: 8 ! Cursor blinking XTerm.VT100.cursorBlink: true XTerm.VT100.cursorOffTime: 250 XTerm.VT100.cursorOnTime: 750 ! Selection XTerm.VT100.charClass: 33:48,36-47:48,58-59:48,61:48,63-64:48,95:48,126:48 XTerm.VT100.highlightReverse: false XTerm.VT100.highlightSelection: true XTerm.VT100.trimSelection: true (色設定を省略...) 非常に古い(知っていますが、かなり「スパルタ」環境にあり、通常のツールを使用したとき)、Fedora 18ワークステーションを最新のFedora 36にアップグレードした後、マウスの機能はXTerm Clickのカーソルが機能しなくなり、見つかりませんでした。問題の根本原因。 (一生懸命修正しようとしましたが、完全に失敗しました。)機能を復元したいと思います。誰でも助けることができますか? 誰も同じ問題がありますか?どうやって分析しますか? 私の考えでは可能TermInfoで問題が発生しましたが、もう詳しく調べる方法がわかりません。

Admin