Linuxシェルプログラミングにおける不正な置換の解決法
2022-02-08 05:12:30
今日、シェルプログラミングの練習をしていて、stu*ユーザーをたくさん追加したのですが、今度はそのすべてのユーザーを見つけたいと思い、以下の行のコードを使いました。
#find stu* users
for i in ${awk -F ":" '{print $1}' /etc/passwd | grep stu}
do
echo $i
done
実行すると、プロンプトが表示されます。
${awk -F ":" '{print $1}' /etc/passwd | grep stu}: bad substitution
Webで検索したところ、コンパイラが違うようで、1行目に指定する必要があるようです
#! /bin/bash, それを試してみたがうまくいかなかった。しかし、コードを再確認したところ、変数の参照は${}ではなく$()であることが判明したので、コードのその行を次のように変更すればいいのだ。
for i in $(awk -F ":" '{print $1}' /etc/passwd | grep stu)
これは実は以前からわかっていたのですが、たまたまコードを書き間違えただけなので、またこんな低レベルなミスをしたときのために、今掲載しておきます。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
fatal:'origin' は git リポジトリでないようです fatal:Could not read from the remote repository
-
コマンドラインからDSOが見つからないことに遭遇した
-
ubuntu installationEnvironmentError: mysql_config not found エラー
-
解決策 VMの初期化中にエラーが発生しました java/lang/NoClassDefFoundError: java/lang/Object
-
kill はプロセスを終了させることができません
-
linux 24, バックグラウンド処理 nohup コマンド
-
linuxのCコンパイルで、整数からキャストをせずにポインタを作る代入が行われる理由
-
AttributeError: モジュール 'tensorflow' には 'get_default_graph' という属性がありません。
-
linuxのセグメンテーション障害
-
mfsmount トランスポートエンドポイントが接続されていない