外观
bash知识
SHC加密脚本
wget https://file.nastool.work/shc-3.8.9.tgz -O /root/vitepress/00_Bash/shc/shc-3.8.9b.tgz
tar -vxf /root/vitepress/00_Bash/shc/shc-3.8.9b.tgz -C /root/vitepress/00_Bash/shc
cd /root/vitepress/00_Bash/shc/shc-3.8.9b
sudo mkdir -p /usr/local/man/man1/
sudo make install
which shc
wget http://47.97.11.31:6008/run.sh -O /root/vitepress/00_Bash/shc/run.sh
shc -r -f /root/vitepress/00_Bash/shc/run.sh
shc -r -f /root/vitepress/00_Bash/shc/kami.sh
shc -r -f /root/vitepress/00_Bash/host/auto_host.sh
JS弹窗库
js
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
html页面必备
一个中文,一个是首届窗口自适应
html
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
bash脚本的变量导入
如果你想要从另一个脚本(A脚本)中传递变量d1
到当前脚本,并且修改当前脚本中的d1
变量,有几种方法可以实现这一点。以下是一些常见的方法:
方法 1: 通过环境变量
在A脚本中,你可以在导出d1
变量之前设置它的值,然后运行当前脚本。例如:
A脚本:
bash
#!/bin/bash
# 设置并导出d1变量
export d1="/my/custom/path"
# 运行当前脚本
bash current_script.sh
当前脚本:
bash
#!/bin/bash
# 检查d1环境变量是否设置,如果没有设置则使用默认值
if [ -z "$d1" ]; then
d1=""
else
echo "d1变量从A脚本传递过来,其值为: $d1"
fi
# 脚本的其余部分...
方法 2: 通过命令行参数
你可以在A脚本中通过命令行参数将d1
的值传递给当前脚本。
A脚本:
bash
#!/bin/bash
d1="/my/custom/path"
# 通过命令行参数传递d1给当前脚本
bash current_script.sh "$d1"
当前脚本:
bash
#!/bin/bash
# 读取命令行参数到d1变量
d1=$1
# 检查d1是否设置,如果没有设置则使用默认值
if [ -z "$d1" ]; then
d1=""
else
echo "d1变量从A脚本通过命令行参数传递,其值为: $d1"
fi
# 脚本的其余部分...
方法 3: 通过文件
A脚本可以将d1
的值写入一个文件,然后当前脚本可以从该文件中读取这个值。
A脚本:
bash
#!/bin/bash
d1="/my/custom/path"
# 将d1的值写入文件
echo "$d1" > d1_value.txt
# 运行当前脚本
bash current_script.sh
当前脚本:
bash
#!/bin/bash
# 从文件中读取d1的值
if [ -f "d1_value.txt" ]; then
d1=$(cat d1_value.txt)
echo "d1变量从A脚本通过文件传递,其值为: $d1"
else
d1=""
fi
# 脚本的其余部分...
选择哪种方法取决于你的具体需求和偏好。环境变量方法适合在多个脚本或命令之间共享配置,命令行参数方法更加显式且容易理解,而文件方法则可以在不同进程或用户之间共享数据。
Heredoc
heredoc
是一种在 shell 脚本或命令行中创建多行字符串的方法。它的名字来源于 "here document",表示文档就在此处。这种方法特别适用于需要将多行文本传递给命令的情况,如邮件、配置文件或脚本的输入等。
cat << 'EOF'
的语法是 heredoc
的一种常见形式,其中 cat
是一个用于输出文本内容的命令,<<
是 shell 中的一个重定向操作符,用于指示后面跟随的是一个 heredoc
区块,'EOF'
是一个界定符,用于标记 heredoc
区块的开始和结束。
具体来说,当你输入 cat << 'EOF'
后,shell 会等待你输入多行文本,直到遇到一个单独的 EOF
行为止。这个 EOF
行不会被包含在输出中,它只是用来标记 heredoc
区块的结束。然后,cat
命令会将这个 heredoc
区块的内容输出到标准输出(通常是终端)。
需要注意的是,界定符(在这个例子中是 EOF
)可以是任意字符串,只要它在 heredoc
区块的开始和结束处保持一致就行。同时,如果界定符被引号包围(如 'EOF'
),则 heredoc
区块内的变量替换和命令替换将不会被执行。如果去掉引号(如 EOF
),则这些替换将会被执行。
下面是一个简单的例子:
bash
cat << 'EOF'
This is a heredoc block.
It contains multiple lines of text.
Variables like $HOME will not be expanded.
Commands like $(date) will not be executed.
EOF
当你运行这个脚本时,它会原样输出 heredoc
区块中的内容,而不会对 $HOME
或 $(date)
进行任何替换或执行。如果你去掉界定符周围的引号,那么这些替换就会被执行。
参考文献:Heredoc 入门
case语句
在bash脚本中,case语句用于执行多个不同的命令,基于变量的值
下面是一个具体的例子,展示了如何使用case
语句:
bash
#!/bin/bash
# 读取用户输入
read -p "请输入一个数字: " number
# 使用case语句处理用户输入
case $number in
1)
echo "你输入了1"
;;
2)
echo "你输入了2"
;;
3)
echo "你输入了3"
;;
*)
echo "你输入的不是1、2或3"
;;
esac
在这个例子中,脚本会提示用户输入一个数字。然后,它会使用case
语句来检查用户输入的数字,并输出相应的消息。如果用户输入的不是1、2或3,它会输出一个默认消息。