🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

Q&A

1回答

440閲覧

コマンドの内部で、そのコマンド自身を文字列として処理したい

pupperccino

総合スコア17

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

zsh

zshは、UNIX系OSのシェルの1つです。 cshやksn系のコマンドライン編集機能も実装されたシェルです。

0グッド

1クリップ

投稿2020/12/02 14:16

やりたいこと

sh

1処理1 && 処理2 && 処理3 && 処理X 2```の出力が 3```ここに言語を入力 4処理1 5処理2 6処理3 7```であるような処理Xを書きたい。 8 9つまり一般に、ターミナルにおいて、ある(一連の)コマンド__c__はこの__c__という文字列を内部で扱うことができますか? 10(それさえできれば、awkなどを使って%%で区切ることは簡単なのでやりたいことが達成できます)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/12/02 23:57

例えば 処理1がls 処理2がls -1 処理3がls -lAF だったとします。 すると、 ls && ls -1 && ls -lAF && 特殊なコマンドX で ls ls -1 ls -lAF と表示させるような特殊なコマンドXが作れないか?ということですよね? 残念ですがそのような特殊なコマンドXは作成できません。特殊なコマンドXが受け取れる文字列はあくまで、特殊なコマンドXの起動に使われる文字列だけなので、この例で言えば&&以前の文字列は受け取れないからです。 このようなことをしたい場合、 COMMANDS="ls && ls -1 && ls -lAF" echo "$COMMANDS" eval "$COMMANDS" のような方法はどうでしょう?処理したいコマンドを文字列として変数に格納し、表示をechoで、実行をevalでするということです。 表示が1行で&&を残したままとなり、要件と異なるので注意してください。 またevalはどの言語でもセキュリティ懸念があるので、慎重に使いましょう。 なお一度文字列にするので、変数展開やエスケープがややこしくなる傾向もあります。
guest

回答1

0

シェルスクリプトであれば、$0でコマンド名が参照できます。
PATHを検索して実行されたコマンドの場合はフルパスになるので、/以降を取り出す必要があります。

Bash

1#!/bin/bash 2echo command name is ${0##*/}

Cであれば、int main(int argc, char **argv)と定義してargv[0]でコマンド名が参照できます。

他の言語でも同様の機能があるはずです。

投稿2020/12/02 16:08

otn

総合スコア85893

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問