cat oncall.sh
#!/bin/bash
scriptpath=/path/to/scripts
cat ${scriptpath}/oncall.txt
创建文件后,运行不会有什么坏处
dos2unix oncall.sh
只是为了确保没有 Windows Ctrl-M 字符会完全让你迷惑他们可以搞砸 Unix 脚本处理的方式。
那么
chmod 755 oncall.sh
使脚本可执行。
确认
ls -l oncall.sh
你应该会看到类似的列表
-rwxr-xr-x 1 userName grpname 5263 Nov 21 14:44 oncall.sh
最后,使用完整路径或相对路径调用脚本,即
./oncall.sh
或
$PWD/oncall.sh
第一行称为“shebang”行,当您的脚本被调用时,操作系统会读取文件的第一行,以找出运行什么程序来解释脚本文件的其余部分。
您可能希望/需要使用以下之一作为第一行“shebang”,但 bash 是一个不错的猜测
#!/bin/ksh
#!/bin/sh
#!/bin/ash
#!/bin/dash
#!/bin/zsh
或者你可能在最坏的情况下,你的 shell 存在于一个非标准目录中,那么你必须把它拼出来,即
#!/usr/bin/ksh
所有 shell 都支持用于跟踪和变量扩展的调试参数,例如
#!/bin/ksh -vx
或者你可以只包装某些行来打开和关闭调试
set -vx
cat ${scriptpath}/oncall.txt
set +vx
鉴于此
% 和 0 之间的 ~dp 特殊语法基本上表示扩展变量 %0 以显示驱动器号和路径,从而为您提供包含批处理文件的当前目录!
我认为/path/to/scripts 是一个合理的替代品,scriptpath=$PWD 将是直接替代品,因为 Unix 中没有驱动器号。那里的问题是,您要么依靠 unix PATH var 来查找脚本,要么依靠 cd /path/to/scripts 然后使用相对路径./ 运行 ./oncall.sh 来查找文件,而无需向 PATH 添加值。
IHTH。