質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
bash

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

Q&A

解決済

2回答

243閲覧

コマンドをリスト化させる

ITU04307852

総合スコア2

bash

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

0グッド

0クリップ

投稿2020/09/05 14:24

編集2020/09/05 15:02

例、forループで for i in ・・・と言う場合に、
$iに対して、複数のコマンドを(ファイルor配列)から取り出して、
同時に(というかfor文的には同時だけど。実際は順次)に
実行したいのですが教えてもらえますか?

もう一点
取得対象 コマンドを組み合わせてリスト化等のやり化があれば教えてほしいでsu


複数のコマンドを実行してループ文使って情報の取得をしたいのですが

複数のコマンドをリスト化させてループ文に組み込み方たいのですが
教えていただけると助かります

実行コマンドは
ls
yum list
ifconfig
みたいな感じです。

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

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

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

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

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

hana_yama_san

2020/09/05 14:29

質問の意味を確認したいのですが、 例えば、forループで for i in ・・・と言う場合に、 $iに対して、複数のコマンドを(ファイルor配列)から取り出して、 同時に(というかfor文的には同時だけど。実際は順次)に 実行したいという意味ですか。
ITU04307852

2020/09/05 14:43

その通りです。わかりやすくしていただきありがとうございます。 まだ理解が相当浅いものですいません
hana_yama_san

2020/09/05 14:47

では、質問文に最初の質問は残して、変更後として、 新たに追記してください。
guest

回答2

0

ベストアンサー

こういうやつ?

bash

1#!/bin/bash 2commandlist=("ls" "yum list" "ifconfig") 3for i in "${commandlist[@]}"; do 4 echo $i 5 $i 6done

投稿2020/09/05 15:05

Daregada

総合スコア11990

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

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

ITU04307852

2020/09/05 15:22

まさにそいうやつです ありがとうございました。
guest

0

あいたたた、検証してたら先を越された。

当方FreeBSD環境なので下記、

[usr@host ~/programing]$ cat command_file
ls
ifconfig
pkg info
[usr@host ~/programing]$
[usr@host ~/programing]$

[usr@host ~/programing]$ IFS=$'\n' ;for com in cat command_file ; do "${com}" ; done

asm c-work command_file Hello network_programing rmtest shell_work
big_num_sum.txt c++ Fortran java perl ruby sql_work
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1454
options=82099<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
ether 6c:f0:49:01:06:ec
inet 172.16.11.230 netmask 0xffffff00 broadcast 172.16.11.255
inet6 fe80::6ef0:49ff:fe01:6ec%re0 prefixlen 64 scopeid 0x1
inet6 2400:4050:8340:ab00:6ef0:49ff:fe01:6ec prefixlen 64 autoconf
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
re1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1454
options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
ether 4c:e6:76:d8:58:19
inet6 fe80::4ee6:76ff:fed8:5819%re1 prefixlen 64 scopeid 0x2
inet 10.1.0.254 netmask 0xffffffff broadcast 10.1.0.254
media: Ethernet autoselect (none)
status: no carrier
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet 127.0.0.1 netmask 0xff000000
groups: lo
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
lo1: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
inet 192.168.0.230 netmask 0xffffffff
inet6 fe80::1%lo1 prefixlen 64 scopeid 0x4
inet6 fd2e:7e5e:c921:be0:192:168:0:230 prefixlen 128
groups: lo
nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
bash: pkg info: コマンドが見つかりません
[usr@host ~/programing]$

pkg infoについては要追跡調査。

投稿2020/09/05 15:23

hana_yama_san

総合スコア923

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

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

Daregada

2020/09/06 02:54

"pkg info"(空白を含むコマンド名)を実行しようとしています。
hana_yama_san

2020/09/06 06:27

ありがとうございます。 do の直後に eval 入れて解決しました。
Daregada

2020/09/06 06:33

いや、単に"${com}"を${com}にするだけじゃない?
hana_yama_san

2020/09/06 08:42

笑うしかないですね。(失礼!)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問