如果我在 sh 的命令行上运行 for 循环,然后按 control-C,它通常会取消当前正在运行的进程,因此我需要按住 ^C 直到 shell 本身捕获它并中断循环。有没有办法立即中断当前进程和循环?
我正在使用大学远程 Linux 帐户,遗憾的是默认 shellcsh没有选项卡完成。如何将我帐户的默认 shell 更改为bash?chsh不可用。
我创建了一个名为\;:$"\'测试我的软件的文件。我最终出现错误,因为我无法删除文件属性。我试图找到一个精确的字符组合来通过 删除它rm,但我找不到方法。
rm \\;:$\"\\\'
rm: cannot remove `\\': No such file or directory
rm "\\"\;:$\"\\\'
rm: cannot remove `\\;:$"\\\'': No such file or directory
rm '\;:$"\'''
rm: cannot remove `\\;:$"\\': No such file or directory
Run Code Online (Sandbox Code Playgroud)
(这最后一次尝试杀死了我)
以及许多其他尝试。需要伸出援助之手!
我有一个脚本
#!/bin/sh
# Automatically remove a torrent and delete its data after a specified period of
# time (in seconds).
TARGET=/var/www/transmission/completed
USER=name
PASS=pass
BIN="/usr/bin/transmission-remote"
# The default is 5 minutes (in seconds).
CUTOFF=`expr 100 \* 3`
##############################################
### You shouldn't need to edit below here. ###
##############################################
# Tokenise over newlines instead of spaces.
OLDIFS=$IFS
IFS="
"
for ENTRY in `$BIN -n $USER:$PASS -l | grep 100%.*Done.*Finished`; do
# Pull the ID out of the listing.
ID=`echo $ENTRY | sed …Run Code Online (Sandbox Code Playgroud) 在 llvm 3.0 测试套件中,下面的代码片段在 bash 上给出了以下错误:
sh:找不到时间命令
if [ "x$RHOST" = x ] ; then
( sh -c "$ULIMITCMD $TIMEIT -p sh -c '$COMMAND >$OUTFILE 2>&1 < $INFILE; echo exit \$?'" ) 2>&1 \
| awk -- '\
BEGIN { cpu = 0.0; }
/^user/ { cpu += $2; print; }
!/^user/ { print; }
END { printf("program %f\n", cpu); }' > $OUTFILE.time
Run Code Online (Sandbox Code Playgroud)
其中 $TIMEIT = 时间。
我试图将“sh -c”更改为“eval”,但错误仍在继续。
在尝试解决此错误时,我注意到一些有趣的事情可能有助于解决此问题,也可能无济于事:运行 sh -c "time" 有效,但 sh -c "time -p" 无效。
你们有没有人知道为什么会发生这个错误,我该如何解决? …
假设我需要找到这条路径/<some_where_in_root>/find/this/path,而我拥有的唯一信息是/find/this/path. 找到完整目录的最佳方法是什么?
我基本上有一个创建目录的程序,在创建目录后,我想查看创建的目录中现在是否存在路径。
到目前为止,我已经尝试过,find . -type d -name "/find/this/path"但这显然解释/find/this/path为一个字符串。在这种情况下有什么方法可以使用 find 吗?最好只解析我拥有的路径并获取该path部分并对该字符串进行搜索?
如果您曾尝试通过双击在 Windows 10 上运行 .sh linux 脚本,在默认情况下将其分配给 bash.exe(Windows 10 的 Ubuntu Bash)后,您很可能注意到它不会打开。
为什么它不打开,我该如何解决这个问题?
您能解释一下 shebang #!/bin/sh -x 中“x”的含义吗?
这行有必要加“-x”吗?
我正在使用startx启动图形环境。我有一个非常简单的.xinitrc东西,我会在设置环境时添加一些东西,但现在它如下:
catwm & # Just a basic window manager, for testing.
xterm
Run Code Online (Sandbox Code Playgroud)
我之所以背景WM和前景终端,而不是周围的其他方法经常做,是因为我希望能够打字回来后给虚拟文本控制台exit在xterm。这似乎像描述的那样工作。
问题是PS1当前设置为我偏好的变量/etc/profile.d/user.sh(来自/etc/profile发行版提供),似乎没有传播到上述环境中xterm。相关进程树如下:
\_ -bash
\_ xinit /home/user/.xinitrc -- /etc/X11/xinit/xserverrc :0 -auth /tmp/serverauth.ggJna3I0vx
\_ /usr/bin/X -nolisten tcp :0 -auth /tmp/serverauth.ggJna3I0vx vt1
\_ sh /home/user/.xinitrc
\_ /home/user/catwm
\_ xterm
\_ bash
Run Code Online (Sandbox Code Playgroud)
由 启动的 shellxterm似乎是交互式的,但执行的 shell.xinitrc不是。我对两者都满意,关于交互性的假设似乎完全有效,但现在我有一个非交互式 shell,它间接生成了一个交互式 shell,而交互式 shell 没有机会自动继承提示,因为提示未设置或以其他方式使流程树的更高位置不可用。我该如何恢复我的提示?
我正在寻找一种将字符串转换为干净url 的方法。
例如 :
wget http://myurl.com/toto/foo bar.jpg
Run Code Online (Sandbox Code Playgroud)
这是要下载http://myurl.com/toto/foo和http://bar.jpg。
我要下载http://myurl.com/toto%20bar.jpg。
我尝试了一些标志,--restrict-file-names=ascii但没有成功。
我不想要一种编码方式而不是一种逐一替换的方式。
任何的想法 ?