0
我有一个Bash shell脚本,它将三个输入文件作为参数。我想将它们全部打包,所以我可以将该软件包放在任何UNIX计算机上并运行它。在Solaris/AIX中是否有任何实用程序来打包shell脚本?
我有一个Bash shell脚本,它将三个输入文件作为参数。我想将它们全部打包,所以我可以将该软件包放在任何UNIX计算机上并运行它。在Solaris/AIX中是否有任何实用程序来打包shell脚本?
有一个古老而古老的技术,包括众所周知的白发苍苍管理员一个可执行的tar文件;)
首先创建一个脚本...把它放到一个文件名为脚本
#!/bin/bash
TAR_STARTS=`awk '/^__TARMAN BEGINS__/ { print NR + 1; exit 0; }' $0`
NAME_OF_SCRIPT=`pwd`/$0
tail +$TAR_STARTS $NAME_OF_SCRIPT | gunzip -c | tar -xvf -
# Insert commands to execute after untaring here .... with relative
# pathname (e.g. if there is directory "bin" with a file "executable"
# then you should insert a line bin/executable
exit
__TARMAN BEGINS__
不换行的最后__
当然这个脚本是从某处互联网后而得。不是我的。我只是不记得正确的荣誉在哪里。
然后创建您的tarfile并将其放在文件的末尾。这就是为什么它nescessary的原因有是__
$ cat script test.tar.gz > selfexploding.sh
现在后不换行你可以尝试一下
$ bash ./selfexploding.sh
tar: blocksize = 9
x testtar, 0 bytes, 0 tape blocks
x testtar/test2, 1024 bytes, 2 tape blocks
x testtar/test1, 1024 bytes, 2 tape blocks
你当然可以把名字脚本的退出之前,该你通过解压创建...当然,路径必须是相对于执行的pwd。不知道这是否适用于AIX。至少在Solaris 11.3中起作用。但是因为它只使用标准命令。它应该到处工作。除此之外,您当然可以为Solaris和AIX创建本地软件包。
真的不清楚你想做什么。你想'打包'你的脚本,或者你的脚本应该'打包'文件? –
想打包我的脚本。 – Rohith
你期待什么样的包装? Solaris使用SVR4封装标准(或从Solaris 11开始的IPS),但AIX使用自己的BFF标准。无论如何,如果它包含单个文件,那么打包实用程序有什么意义? – jlliagre