GNU/Linux >> Belajar Linux >  >> Linux

Shell Script, baca di baris yang sama setelah mengulang pesan

echo -n "Enter [y/n] : " ; read opt

ATAU! (Nanti lebih baik)

read -p "[y/n]: " opt

Shebang #!/bin/sh berarti Anda sedang menulis kode untuk Bourne Shell historis (masih ditemukan di beberapa sistem seperti Solaris menurut saya), atau lebih mungkin, bahasa shell standar seperti yang didefinisikan oleh POSIX. Artinya read -p dan echo -n keduanya tidak dapat diandalkan.

Solusi standar/portabelnya adalah:

printf 'Enter [y/n] : '
read -r opt

(-r mencegah perlakuan khusus dari \ , sejak read biasanya menerimanya sebagai kelanjutan baris saat berada di akhir baris.)

Jika Anda tahu bahwa skrip Anda akan dijalankan pada sistem yang memiliki Bash, Anda dapat mengubah shebang menjadi #!/bin/bash (atau #!/usr/bin/env bash ) dan gunakan semua fitur Bash yang mewah. (Banyak sistem memiliki /bin/sh disinkronkan ke bash jadi ini berfungsi dengan baik, tetapi mengandalkan itu adalah praktik yang buruk, dan bash sebenarnya menonaktifkan beberapa fiturnya sendiri saat dijalankan dengan nama sh .)


Solusi:read -p "Enter [y/n] : " opt

Dari help read :

  -p prompt output the string PROMPT without a trailing newline before
        attempting to read

Linux
  1. Kelanjutan Baris Bash Setelah &&Dan || Didokumentasikan?

  2. Teks Gema Setelah Perintah Curl Pada Baris Yang Sama?

  3. Bagaimana Cara Memeriksa Substring Di Shell Script Bash?

  1. Apakah mungkin membuat skrip bash shell berinteraksi dengan program baris perintah lain?

  2. Baca baris demi baris dalam skrip bash

  3. menjalankan skrip php (fungsi php) di linux bash

  1. Penerjemah Shell mana yang Menjalankan Skrip Tanpa Shebang?

  2. Bagaimana Cara Melewati Argumen Baris Perintah Menjadi Skrip Shell?

  3. Jalankan skrip bash setelah login