Saya ingin membaca nilai dari file teks dan membandingkannya dengan angka

1

Saya menggunakan windows PowerShell. Saya ingin mengambil nomor yang disimpan dalam file teks dan membandingkannya dengan nomor lain menggunakan skrip shell. Jika saya menggunakannya $x=$(cat value.txt)mengatakan "perintah tidak ditemukan". Saat saya gunakan

cat vaue.txt
(
read num
)
if [ "$num" == '1' ]; then
echo "hello"
elif [ "$num" == '2' ] then
echo "world"
else
echo "hi" 
fi

output berisi "hai" terlepas dari nilai num. Bagian lain akan dikeluarkan tidak peduli berapa pun nilai num. Apakah ada cara lain? Saya juga telah mencoba semua cara lain membaca nilai dari file.

Kshitij bhat
sumber
1
Itu terlihat seperti skrip shell unix. Itu tidak akan berfungsi di PowerShell. PowerShell memiliki sintaksnya sendiri.
dangph
skrip unix shell dapat dijalankan dengan PowerShell. saya menjalankan skrip shell menggunakan perintah sh file2.sh.
Kshitij bhat
1
@Kshitijbhat Anda dapat memanggil skrip shell dari PowerShell, dan skrip shell akan mengeksekusi dalam proses interpreter shell yang terpisah. Tetapi runtime PowerShell tidak dapat menjalankan perintah shell. Sepertinya masalah Anda ada pada skrip shell, bukan PowerShell.
Rynant

Jawaban:

0

Powershell memiliki alias bawaan untuk beberapa perintah shell yang setara secara fungsional. Ketika Anda telah menemukan perintah kucing berfungsi dengan baik.

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Alias           cat -> Get-Content

Namun, skrip Powershell dan shell berbeda dalam sintaksisnya. Di atas harus ditulis menggunakan pernyataan if yang ditunjukkan di bawah sebagai gantinya.

cat value.txt | % {

    if ($_ -eq '1') { "hello" }
    elseif ($_ -eq '2') { 'world' }
    else { 'hi' }
}
MFT
sumber