现在我有多个指令需要通过人工分别添加(启动终端、复制粘贴指令、将指令插入文本文件),所以我认为必须有一种方法将所有这些命令打包到单个文本文件中并运行一次。
例如我需要做2个配置:
第一种配置
使用以下代码创建文件:
sudo nano /usr/local/bin/loadFlysoftPOS
将以下文本复制到上述文本文件中:
#/bin/bash until pids=$(pidof mysqld) do sleep 1 done cd ~/Dokumente/dist/ java -jar POSv2.jar > log.txt
使其可由当前用户运行
sudo chmod +x /usr/local/bin/loadFlysoftPOS
第二种配置
创建文件:
sudo nano /etc/udev/rules.d/10-local.rules
将文本插入文件:
SUBSYSTEMS=="usb", DRIVERS=="usb", ATTRS{idVendor}=="0525", ATTRS{idProduct}=="a700", SYMLINK+="usb/sewoo1", GROUP="lp"
那么,是否可以将所有这些指令存储到一个脚本中并运行一次?同样重要的是覆盖任何现有文件,因此如果已经存在一个名为 /etc/udev/rules.d/10-local.rules 的文件,则应清除其内容并由新脚本提供的内容覆盖。
谢谢大家的启发!
答案1
nano
是一个交互式文本编辑器 - 恕我直言,它对于以编程方式创建文件内容没有帮助。
对于你的第一个案例,我建议使用这里的文件:
cat << \EOF > /usr/local/bin/loadFlysoftPOS
#!/bin/bash
until $(pidof mysqld)
do
sleep 1
done
cd $HOME/Dokumente/dist/ && java -jar POSv2.jar > log.txt
EOF
chmod +x /usr/local/bin/loadFlysoftPOS
对于第二种情况,echo
可以简单这样做:
echo 'SUBSYSTEMS=="usb", DRIVERS=="usb", ATTRS{idVendor}=="0525", ATTRS{idProduct}=="a700", SYMLINK+="usb/sewoo1", GROUP="lp"' > /etc/udev/rules.d/10-local.rules
把整个东西放在一个有其自己的文件中:
文件:myscript.sh
#!/bin/sh
cat << \EOF > /usr/local/bin/loadFlysoftPOS
#!/bin/bash
until $(pidof mysqld)
do
sleep 1
done
cd $HOME/Dokumente/dist/ && java -jar POSv2.jar > log.txt
EOF
chmod +x /usr/local/bin/loadFlysoftPOS
echo 'SUBSYSTEMS=="usb", DRIVERS=="usb", ATTRS{idVendor}=="0525", ATTRS{idProduct}=="a700", SYMLINK+="usb/sewoo1", GROUP="lp"' > /etc/udev/rules.d/10-local.rules
制作它可执行文件,然后运行它sudo
chmod +x myscript.sh
sudo ./myscript.sh