當前位置:首頁 » 網頁前端 » bash腳本
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

bash腳本

發布時間: 2022-01-12 10:01:09

㈠ Linux bash腳本

forfilenamein`ls-F`
do
if[[$filename=~(.*/$)]]then
echo"$filename">>/tmp/dir.txt
else
echo"$filename">>/tmp/files.txt
fi
done

㈡ linux下怎麼運行bash腳本

linux下運行bash腳本的方法如下:
1.
首先在桌面右鍵點擊,選擇在終端中打開,打開命令行;
2.
在命令行中輸入
cd
腳本路徑,進入腳本所在目錄;
3.
使用chmod
+x
腳本名命令給文件添加可執行許可權;
4.
使用sh
腳本名或者
./腳本名的方法來運行bash腳本。

㈢ linux中使用 . / 執行和 bash 執行腳本的困惑

.是表示在當前shell中執行腳本。所以會在當前的shell界面看到提示。
#!/usr/bin/bash 則是另開了一個shell執行腳本,所以看不到提示。
至於另開腳本是否會覆蓋還沒有測試過。
但是考慮可能會覆蓋的情況 ,因該編寫一個if 【】進行文件是否存在的測試。如果文件存在,進行判斷是跳過還是覆蓋。
否則文件不存在,則直接復制。

㈣ bash編程中怎麼對腳本換行

在bash腳本中可以使用echo對輸入內容進行換行或者使用反斜杠對腳本命令進行換行:

1、使用echo -e可以對輸出內容進行換行輸出,例如:

echo-e"abc
bcd
dsws"

將會輸入:

abc
bcd
dsws

注意:使用echo -n將會忽略輸入語句中的 換行符。


2、當腳本中命令太長的時候,一行不能完成寫下,或者太長影響腳本代碼的美觀性,可以使用對一個命令進行換行執行:

./configure--prefix=/usr/local/softname--enable-xxx-enable-yyy--enable-zzz--enable-aaa-enable-bbb--enable-ccc--enable-mmm-enable-nnn--enable-ppp--enable-qqq

使用換行書寫:

./configure--prefix=/usr/local/softname
--enable-xxx-enable-yyy--enable-zzz--enable-aaa
-enable-bbb--enable-ccc--enable-mmm-enable-nnn
--enable-ppp--enable-qqq

㈤ bash shell腳本編程問題

[ ! -e filename1 -a ! -e filename2 ] 兩個文件同時不存在

!
"非"
-a
邏輯與
exp1 -a exp2 如果表達式exp1和exp2都為真的話, 那麼結果為真.
-o
邏輯或
exp1 -o exp2 如果表達式exp1和exp2中至少有一個為真的話, 那麼結果為真.

這與Bash中的比較操作符&&和||非常相像, 但是這個兩個操作符是用在雙中括弧結構中的.
[[ condition1 && condition2 ]]
-o和-a操作符一般都是和test命令或者是單中括弧結構一起使用的.
[ "$exp1" -a "$exp2" ]

㈥ 求寫一個bash腳本

腳本如下。

#!/bin/bash
# default
ip=192.168.168.168
count=3
if [ $# -eq 2 ]; then
[[ $1 =~ ^([0-9]+\.){3}[0-9]+$ ]] && ip=$1
[[ $2 =~ ^[0-9]+$ ]] && count=$2
elif [ $# -eq 1 ]; then
if [[ $1 =~ ^([0-9]+\.){3}[0-9]+$ ]]; then
ip=$1
elif [[ $1 =~ ^[0-9]+$ ]]; then
count=$1
fi
fi
ping -n $count $ip >>$(date +%Y-%m-%d-%H-%M-%S).log
[ $? -ne 0 ] && 這里寫restart pppd的代碼
exit 0

說明:
1)運行腳本時可以帶兩個參數,第一個指示ip,第二個指示ping的次數;若輸入不符合格式要求,使用默認值。
2)若只提供了一個參數,腳本自動根據格式判斷是ip還是ping的次數;另一個使用默認值。
3)若提供的參數個數超過兩個,只取前兩個,格式判斷參見1)。
4)若沒有提供參數,都使用默認值。
5)因為沒用過pppd,所以重啟pppd的代碼由你自行補上。

㈦ bash腳本for循環報錯

1)把你的腳本修改如下:

$catx.sh
#!/bin/bash
foriin{1..4};
do
read-p"pleaseinputuseraccount:"username
stty-echo
read-p"pleaseinputpassword:"password
sttyecho
echo-e\n
if["$username"=="summit"]&&["$password"=="hisummit"];then
echo"correctuser,correctpassword,welcome!"
break
else
echo"wronguser,or/andwrongpassword,pleasetryagain."
fi
done

if[$i-eq4];then
exececho"wronguser/password,bye-bye"
fi

echo"WelcometousethisLinuxmachine"
echo"......"
......腳本中後面的命令可以繼續運行


2)執行腳本,輸入正確的用戶名和密碼:

$x.sh(或者執行./x.sh)
pleaseinputuseraccount:summit
pleaseinputpassword:

correctuser,correctpassword,welcome!
WelcometousethisLinuxmachine
......
......腳本中後面的命令可以繼續運行

腳本中for循環後面的命令可以繼續運行。


3)執行腳本,連續4次輸入錯誤的用戶名和密碼(要麼都錯,要麼用戶名和密碼其中錯一個):

$x.sh(或者執行./x.sh)
pleaseinputuseraccount:abcd
pleaseinputpassword:

wronguser,or/andwrongpassword,pleasetryagain.
pleaseinputuseraccount:summiitt
pleaseinputpassword:

wronguser,or/andwrongpassword,pleasetryagain.
pleaseinputuseraccount:peter
pleaseinputpassword:

wronguser,or/andwrongpassword,pleasetryagain.
pleaseinputuseraccount:summitt
pleaseinputpassword:

wronguser,or/andwrongpassword,pleasetryagain.
wronguser/password,bye-bye(這里就bye-bye了,for循環後面的命令不能執行了)

列印出wrong user/password, bye-bye之後,腳本結束了,for循環後面的命令不能執行了。


供參考,謝謝!

㈧ bash腳本的解釋

2>/dev/null 是將錯誤輸出重定向到文件/dev/null,/dev/null是由系統維護的一個垃圾站並且自動清空,你可以用cat工具看看,裡面是空的。如果你刪了這句,錯誤輸出將顯示到屏幕。2是一個文件描述符,代表標准錯誤輸出文件,默認為屏幕即/dev/stdout,另外0代表標准輸入,1代表標准輸出。學Shell推薦你看sobell的「Linux命令、編輯器與shell編程」,不要被一些爛書誤導了。

㈨ linux學習bash腳本的一些困惑

linux腳本是很多個空格當成一個空格來識別,你這種情況還真不遇到過,有可能是你系統用的bash的版本和種類不同造成的

㈩ linux命令行下,怎麼關閉正在執行的bash腳本

killall 腳本名

就算屏幕上在一直列印,你只管輸入(盲輸或復制粘貼過來),完成後一個回車ok。
哪怕輸入的東西在屏幕上顯示時會被輸出攪亂,但實際是會被終端接收到標准輸入管道的。這個方法我剛剛也試過了,是可以的。

上面的用於後台運行情況。前台運行一般ctrl+c是可以終止的。