不知你最後要的目的是什麼 .....
這是你要的嗎?
test=`ls -s |grep movie`
echo $test
變數 $test 就是你要找的 movie.json
運用還有 直接 cat 出來
cat $(ls -s |grep movie|awk '{print $2}')
我想做的是把batch script 轉成bash.sh
for /f "tokens=1" %%y in ('dir /B ^| findstr "mactohost"') do (
set CN=%%y
)
這會只列出檔案 然後把有mactohost的檔名(d6mactohost)指派給y 然後把y當值指派給CN 最後CN會等於d6mactohost
我把dir /B ^| findstr "mactohost 改成 ls -s | grep mactohost 不知正不正確
然後就是要把執行結果指派給變數 謝謝
等等⋯⋯ dir 是 batch 的語法(Windows),但 ls 是 bash 的語法(Linux & Mac),兩者完全無關啊⋯⋯
如果你要的是指派給變數
用 bash 是 變數名稱=$(某項指令)
這樣的語法
因此翻過來可能是
#!/bin/bash
# 剛剛跟 ChatGPT double check 過了,希望是對的
# Find file or folder containing "mactohost" in its name and store its name in variable "CN"
# 以下是翻譯
# batch: `('dir /B ^| findstr "mactohost"')`
# bash: `$(ls -1 | grep "mactohost")`
for item in $(ls -1 | grep "mactohost"); do
# 這行是翻譯 /f "tokens=1",但我手邊沒 Windows 電腦我也沒辦法確認
y=$(echo "item" | awk '{print $1}')
# 然後我不懂的是,這邊 y 跟 CN 會永遠一樣,感覺有點多餘
CN="$y"
done
方便的話請您解釋一下 batch script 本來跑出來的樣子嗎?謝謝
(不過通常能用 batch 的不太好用 bash,能用 bash 的也用不了 batch,好奇一下是何種實際場景會用到⋯⋯系統移植?)