如何sudo apt update从 python 脚本启动带有多个参数(例如“ ”)的 bash 命令?
我想在 bash 脚本中检查目录是什么文件系统类型。
这个想法就像
if [path] is on a [filesystem] filesystem then
filesystem specific command
end if
Run Code Online (Sandbox Code Playgroud) 我正在搜索创建一个脚本来自动将一些自定义配置应用于基于文本的配置文件。
在本例中,/etc/sysctl.conf如果这些行尚未在文件中,我正在搜索添加 2 行(以避免在文件中多次出现这些行)。
这是我使用的脚本:
if [ `grep vm.swappiness /etc/sysctl.conf` != "vm.swappiness=5" ]; then
echo vm.vfs_cache_pressure=50 | sudo tee -a /etc/sysctl.conf
fi
if [ `grep vm.vfs_cache_pressure /etc/sysctl.conf` != "vm.vfs_cache_pressure=50" ]; then
echo vm.vfs_cache_pressure=50 | sudo tee -a /etc/sysctl.conf
fi
Run Code Online (Sandbox Code Playgroud)
和我得到的错误:
/home/erwan/Workspace/Install.sh: ligne 19 : [: != : opérateur unaire attendu
/home/erwan/Workspace/Install.sh: ligne 23 : [: != : opérateur unaire attendu
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我正在构建一个 shell 脚本来自动配置具有最佳设置的特定计算机。我想隐藏这个脚本的所有输出,除了 echo 输出。是否可以?
如果命令退出时代码为 143(超时,来自“超时命令”),我会尝试返回 0 退出代码,否则返回 1。由于外部约束(CI 脚本),我必须启动命令并在 if 子句中进行检查。
这是我目前使用的:
if timeout -t 10 *command* || [ $? = 143 ]
then exit 0
else exit 1
fi
Run Code Online (Sandbox Code Playgroud)
目前,它总是以 0 代码退出。
shell-script ×4
bash ×3
scripting ×2
ash ×1
exit-status ×1
filesystems ×1
grep ×1
linux ×1
python ×1