タグ付けされた質問 「shell-script」

シェルスクリプト、シェルによって解釈される実行可能ファイル(bash、zshなど)に関する質問。

3
別のパスからスクリプトを実行し、スクリプトのパスを知る方法は?
ファイルと同じパスにあるファイルにアクセスするスクリプトを実行する必要があります。 たとえば/home/me/folder/script.sh、次のスクリプトがあります/home/me/folder/myfile。このスクリプトはファイルにアクセスします。ファイルはスクリプトの同じパスにあるため、フルパスではmyfileなく、名前だけを使用します。 しかし、私がそれをから実行すると/tmp/、次のようになります: /tmp$ /home/me/folder/script.sh それは私に与えます: myfile: No such file or directory では、スクリプトで、ファイルがスクリプト自体と同じパスにあることをどのように言えますか?

1
htmlテーブルをncursesのようなASCIIテーブルに変換しますか?
htmlテーブルにドキュメントがあります。次のように、mysqlコマンドラインの結果が返されたときに表示されるように、テーブルをASCIIテーブルに変換したいと思います。 +------------+------------+ | header | header | +------------+------------+ | cell data | cell data | +------------+------------+ | cell data | cell data | +------------+------------+ ...コードのコメントに含めることができます。 どうすれば簡単にこれを実行できますか?lynxの出力をファイルにパイプすることを考えていましたが、lynxはテーブルの周りにASCIIボーダーを配置しません:P また、セルの幅を制御して、コンテンツセルがコードの許容される画面幅の外に出ないようにします。

3
スクリプトでコマンドの代わりにエイリアスを使用できますか?
コマンドのエイリアスがあります(Python開発環境をセットアップしています) alias python=~/virtualenv/bin/python ~/virtualenv/bin/python入力するだけで実行できるようにしますpython。今私のプロジェクトには、例えば行くシェルスクリプトがあります: #!/bin/sh python run-project.py スクリプトに変更を加えずに、スクリプトがで検出しpythonたエイリアスの代わりにエイリアスを使用するようにできますか?python$PATH

4
正規表現を使用して複数のファイルをコピー/名前変更(シェルスクリプト)
「assignment02.cc」、「assignment02.h」、「assignment02.txt」などのパターンに一致するファイルのコレクションがあります。これらのファイルを「assignment03.cc」、「assignment03」にコピー/名前変更したいと思います。 h '、' assignment03.txt 'など。 シェルスクリプトを使用してsedを使用するのは簡単だと思います。これまでのところ: OLD_NO=$1 NEW_NO=$2 echo "Moving from $OLD_NO to $NEW_NO" for name in assignment$OLD_NO.* ; do newname=$(echo $name | sed 's/\(.*\)$OLD_NO\(.*\)/\1xx$NEW_NO\2/') echo "$name -> $newname" # mv -v $name $newname done 残念ながら、sedを呼び出す方法は常に入力文字列$nameを返し、実際には正規表現の検索/置換を行いません。 注:インターネットを見ると、renameこの機能を持つコマンドがありますが、私のMacBookでは使用できません。

1
kshが廃止された理由-eq
kshの最新バージョンはブロック-eq内での使用を廃止し[[ ]]、(( ))代わりに使用することを推奨します。どうしてこれなの?どこ(( ))より[[ ]]も優れていることについてのドキュメントは見つかりません。その構文はかなり明白です。 例えば: #!/bin/ksh var=1 if [[ $var -eq 1 ]] then echo ALPHA fi 与える [adam@hendrix test]$ ksh -n test.sh test.sh: warning: line 3: -eq within [[...]] obsolete, use ((...))

4
ディストリビューションにとらわれない構成管理ソフトウェアはありますか?
Ansibleのaptモジュールやyumモジュールなど、特定の構成マネージャーモジュールにラベルを付けたくありません。 ディストリビューションにとらわれない設定管理ソフトウェア、またはディストリビューションにとらわれないコードを持つ少なくとも1つのソフトウェアでArch Linuxの以下のパッケージをインストールすることはできますか? Arch LinuxにLAMPをインストールするための適切なAnsible galaxy-roleが見つからず、次のDebian用のBashスクリプトがArchに適合しないため、これを質問します。 #!/bin/bash apt update -y apt upgrade ufw sshguard unattended-upgrades wget curl git zip unzip tree -y ufw --force enable ufw allow 22,25,80,443 apt upgrade lamp-server^ ssmtp -y apt upgrade python-certbot-apache -y apt upgrade php-{cli,curl,mbstring,mcrypt,gd} phpmyadmin -y

3
新しいディレクトリ名でディレクトリ名を保持するディレクトリ階層の平坦化
私は基本的にこれから行きたいです: . ├── Alan Walker │ ├── Different World │ │ ├── 01 Intro.mp3 │ │ ├── 02 Lost Control.mp3 │ │ └── cover.jpg │ └── Same World │ ├── 01 Intro.mp3 │ └── 02 Found Control.mp3 ├── Aurora │ └── Infections Of A Different Kind Step 1 │ ├── …

5
特権を減らしてスクリプトの一部を実行するにはどうすればよいですか?
私は次の問題を抱えています:Postgresqlを実行しているすべてのマシンに特別なユーザーpostgresがあります。このユーザーは、データベースサーバーへの管理アクセス権を持っています。 次に、psqlをユーザーpostgresとしてデータベースコマンドを実行するBashスクリプトを記述したいと思います(psqlは、スクリプトではなくユーザーpostgresとして実行する必要があります)。これまでのところ、問題はありません。ユーザーpostgresとしてスクリプトを実行できます。 ただし、psqlの出力を、postgresが書き込みアクセス権を持たないディレクトリのファイルに書き込みたいのですが。 どうやってやるの? ただし、スクリプト自体のEUIDを変更することを考えました。 BashスクリプトでEUIDを変更する方法が見つかりませんでした 次のようなものを使用しているときにEUIDを変更するにはどうすればよい psql -U postgres -c "<command>" > fileですか?

1
Linuxでシェルスクリプトを使用して複数のユーザー名とUIDを作成する
私の環境では、Linuxで実行されているNFSサーバーを常に接続する必要があります。Linuxクライアントシステムにはユーザー名が作成されており、それらは順番に並んでいます。ただし、各ユーザーの共有許可を個別に設定するにuseradd -u 2001 -g 1000 -d /home/app/mnt/1 user1は、NFSサーバーで作成する必要があります。クライアントシステムに1000人のユーザーがいる場合は、NFSサーバーでも個別に作成する必要があります。 Linux NFSサーバーでシェルスクリプトを使用して、複数のユーザー名を作成し、UID(ランダムではない)を割り当てたい。また、ホームディレクトリを自動的に割り当てたいです。たとえば、次のようなユーザーを作成します | Username| UID |Home Directory| | user1 |20001|/home/users/1 | | user2 |20002|/home/users/2 | | user3 |20003|/home/users/3 | | . | . | . | | . | . | . | | . | . | . | | userX …

1
rsync-特定のファイルが存在しない場合にのみディレクトリの内容をコピーします
古いサーバーのコンテンツを新しいサーバーに移行したいのですが、すべてに対処するのではなく、.swfファイルが含まれるディレクトリを除外します。--excludeフラグは認識していますが、.swfファイルがある場合は、親ディレクトリ(およびそのコンテンツ)ではなく、ファイルのみを除外します これをrsyncで実行できない場合、この条件でサーバー間でファイルをコピーするために使用できるbashスクリプトはありますか?

4
サブシェルで `tcsh`を繰り返す
私は中に繰り返し内部で複雑なコマンドを繰り返す方法を把握しようとしているtcshので、同様に、 repeat 9999 (curl http://localhost:80/index.php; echo) 私はここでサブシェルを使用しています代わりに{して}いるため、に従ってhttp://hyperpolyglot.org/unix-shells、tcshのは、この機能を持っていません。 ただし、前の構成から次の予期しないエラーが発生します。 Badly placed ()'s では、複雑なコマンドをどのように繰り返すのtcshですか? 奇妙な不整合についての古い暴言がいくつかcshあり、拡張によりtcsh、たとえば、これはhttp://www.grymoire.com/unix/CshTop10.txtです。したがって、このエラーについてどう考えるべきかわかりません。

2
テキストと数字を含む文字列を改行に書き換え、テキストを挿入する
要するに、1行の出力文字列を複数の行に分割し、各rawにホスト名のラベルを付けます。 ホスト名ProcessName CPUCore output = $(ssh -q -o "StrictHostKeyChecking yes" $ ssh_host 'ps -eo comm、lastcpu | grep rrcp') 次のようなreturn out putにループを挿入する方法。 rrcpd 17 rrcpd 0 そして、 Hostname1 rrcpd 17 Hostname1 rrcpd 0 注意 数字は0〜32 ホスト名は変数文字列$ myhostです テキストは変更されます。つまり、厳密にはrrcpdではなく、たとえば rrcpd 17 rrcpd 0 チーズ3ケーキ8 猫9犬3 各ホストで実行されるコマンド output = $(ssh -q -o "StrictHostKeyChecking …


1
情報をファイルにrsync
rsyncを使用して、あるサーバーから別のサーバーにデータをバックアップします。これはうまく機能します。 rsync -aktvu -e 'ssh -p 22' --modify-window=1 --progress $SOURCE $USER@$SERVER:$DESTINATION 出力には、コピーされた内容が表示されます。 building file list ... 11 files to consider ./ server/ server/myfile.txt 3152 100% 0.00kB/s 0:00:00 (xfer#1, to-check=8/11) server/test/ server/test/logfile01 8266 100% 7.88MB/s 0:00:00 (xfer#2, to-check=6/11) server/test/logfile07 41004 100% 39.10MB/s 0:00:00 (xfer#3, to-check=5/11) server/test/logfile08 318 100% 310.55kB/s 0:00:00 (xfer#4, …

2
ファイルを入力として別のファイルでawkコマンドを実行するBashスクリプト
1つのファイルを取り、各行を別のファイルで実行されるawkコマンドの文字列として実行するスクリプトを記述しようとしています。これが私がこの時点で持っているものです。 #!/bin/bash FILE=$1 FILE_TO_SEARCH=$2 exec 4> "FILE_TO_SEARCH" while read -ru 3 LINE; do awk -v RS='' -v ORS='\n\n' "$LINE" <&4 done 3< "$FILE" スクリプトを実行しようとすると、次のようになります。 ./bashscript2.sh: line 8: read: read error: 3: Bad file descriptor 検索するファイル(FILE)の例は、次のような内容になります。 hostAbC host123 host345 hostMos hostDef 次に、ファイル(FILE_TO_SEARCH)に対してawkコマンドを実行しますが、その内容は以下のようになりますが、さらに多くの点が異なります。 * * * * * * * * * …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.