小编era*_*man的帖子

如何编写具有错误处理功能的可移植 shell 脚本

我在使用 编写可移植的、功能齐全的 shell shell 脚本方面取得了相对较好的成功/bin/sh,例如:

#!/bin/sh
trap 'echo "Error on line $LINENO"; exit 1' ERR
while read LINE
do
  echo "+ $LINE"
done < file.txt
Run Code Online (Sandbox Code Playgroud)

这适用于 BSD 因为/bin/sh通常是ksh

$ ls -li /bin/{sh,ksh}
26768 -r-xr-xr-x  3 root  bin  418612 Jun 18 17:41 /bin/ksh
26768 -r-xr-xr-x  3 root  bin  418612 Jun 18 17:41 /bin/sh
Run Code Online (Sandbox Code Playgroud)

虽然在 MacOS 和许多 Linux 发行版上只是简单地符号链接/bin/shbash

$ ls -li /bin/{sh,bash}
17170438 -rwxr-xr-x 1 root root 938832 Jul 18  2013 /bin/bash
17170540 …
Run Code Online (Sandbox Code Playgroud)

bash

6
推荐指数
1
解决办法
4506
查看次数

标签 统计

bash ×1