install_sayhello.sh脚本示例如下:
#!/bin/bash
# 创建一个目录来存放我们的C程序
mkdir -p /sayhello
cd /sayhello
# 使用echo命令写入C程序代码到sayhello.c文件
cat > sayhello.c <<EOF
#include<stdio.h>
int main() {
printf("hello,world\n");
printf("welcome to changsha!\n");
return 0;
}
EOF
# 安装gcc编译器,如果已经安装则跳过
yum install gcc -y
# 编译C程序
gcc -o sayhello sayhello.c
# 将编译好的程序复制到/usr/local/sbin,使其可以在任意位置执行
cp sayhello /usr/local/sbin/
# 为了使PATH变量的修改永久有效,将其添加到/root/.bash_profile
echo 'PATH=/sayhello:$PATH:$HOME/bin' >> /root/.bash_profile
# 使修改生效
source /root/.bash_profile
# 打印修改后的PATH,确认sayhello程序的位置
echo "PATH variable has been updated. You can now run 'sayhello' from anywhere."
echo "Updated PATH: $PATH"
which sayhello
shell解释器在查找命令的时候,会从PATH变量最左边的文件夹开始查找起,如果找到就不往后面的文件夹里查找了,如果没有就往后面继续查找,从左往右去查找的,以此类推。
如果要让linux系统能查找到sayhello,方法1是将二进制程序sayhello拷贝到PATH变量里的目录下 ,方法2是修改PATH的值增加自己存放程序的目录 ,脚本中两种方法都用上了,最后为了永久生效,修改/root/.bash_profile的PATH变量。
给install_sayhello.sh给予执行权限:
chmod +x install_sayhello.sh
然后,你可以通过在终端运行此脚本来自动化整个安装和配置过程:
./install_sayhello.sh
这个脚本会创建一个C程序,编译它,将编译后的二进制文件复制到系统路径中,并更新PATH
变量,使得无论你在哪个目录下,都可以直接通过命令sayhello来运行你的程序。